PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

ORDER BY को id से दूसरे अनुक्रमित कॉलम में बदलना (कम LIMIT के साथ) एक बड़ी लागत है

यह एक सूचकांक मुद्दा निकला। क्वेरी का NULLS व्यवहार अनुक्रमणिका के साथ सुसंगत नहीं था।

CREATE INDEX message_created_at_idx on message (created_at DESC NULLS LAST);

... ORDER BY message.created_at DESC; -- defaults to NULLS FIRST when DESC

समाधान

यदि आप अपनी अनुक्रमणिका या क्वेरी में NULLS निर्दिष्ट करते हैं, तो सुनिश्चित करें कि वे एक दूसरे के साथ सुसंगत हैं।

यानी:ASC NULLS LAST ASC NULLS LAST के साथ सुसंगत है या DESC NULLS FIRST

NULLS LAST

CREATE INDEX message_created_at_idx on message (created_at DESC NULLS LAST);

... ORDER BY messsage.created_at DESC NULLS LAST;

पहले शून्य करें

CREATE INDEX message_created_at_idx on message (created_at DESC); -- defaults to NULLS FIRST when DESC

... ORDER BY messsage.created_at DESC -- defaults to NULLS FIRST when DESC;

शून्य नहीं

अगर आपका कॉलम न्यूल नहीं है, तो NULLS से परेशान न हों।

CREATE INDEX message_created_at_idx on message (created_at DESC);

... ORDER BY messsage.created_at DESC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL में शर्तों के साथ अद्वितीय बाधा

  2. अपने साथ वैकल्पिक has_one संबद्धता के लिए दायरा

  3. पोस्टग्रेज लॉग फ़ाइल में शामिल हैं:pg_toast_2619 में टोस्ट मान 815441 के लिए गुम खंड संख्या 0

  4. PSQLException:सर्वर ने पासवर्ड-आधारित प्रमाणीकरण का अनुरोध किया था, लेकिन कोई पासवर्ड प्रदान नहीं किया गया था

  5. PostgreSQL में विभिन्न स्वामियों के साथ सभी तालिकाओं के लिए बाधाओं की सूची बनाएं