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

बहुस्तंभ तुलना के लिए सूचकांक स्कैन - गैर-वर्दी सूचकांक स्तंभ क्रम

PostgreSQL टुपल्स को बहुत अच्छी तरह से लागू करता है, (Oracle, DB2, SQL Server, आदि में पाए गए आधे कार्यान्वयन के विपरीत)। आप "टुपल्स असमानता" का उपयोग करके अपनी स्थिति लिख सकते हैं, जैसे:

select * 
from table1
where (a, -b, c) >= (10, -20, 30)
order by a, -b, c
limit 10

कृपया ध्यान दें कि चूंकि दूसरा कॉलम अवरोही क्रम में है, इसलिए आपको तुलना के दौरान इसके मान को "उल्टा" करना होगा। इसलिए इसे -b . के रूप में व्यक्त किया जाता है और साथ ही, -20 . गैर-संख्यात्मक कॉलम जैसे दिनांक, वर्चर्स, एलओबी इत्यादि के लिए यह मुश्किल हो सकता है।

अंत में, -b . के साथ अनुक्रमणिका का उपयोग अभी भी संभव है कॉलम मान यदि आप एक एड-हॉक इंडेक्स बनाते हैं, जैसे:

create index ix1 on table1 (a, (-b), c);

हालाँकि, आप PostgreSQL को कभी भी अनुक्रमणिका का उपयोग करने के लिए बाध्य नहीं कर सकते। SQL एक घोषणात्मक भाषा है, अनिवार्य नहीं। आप प्रलोभित . कर सकते हैं ऐसा करने के लिए तालिका के आँकड़ों को अद्यतित रखते हुए, और पंक्तियों की एक छोटी संख्या का चयन करके भी। अगर आपका LIMIT बहुत बड़ा है, इसके बजाय PostgreSQL एक पूर्ण तालिका स्कैन का उपयोग करने के लिए इच्छुक हो सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PSQLException पकड़ा नहीं जा रहा है

  2. डेटा पीढ़ी और हार्डवेयर गुणवत्ता

  3. अनेक से अनेक संबंधों को मॉडल करने का सबसे अच्छा तरीका क्या है

  4. PostgreSQL पिछले रिकॉर्ड के तत्व की जाँच कर रहा है

  5. PostgreSQL के लिए अच्छा OleDB/ODBC प्रदाता