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

यदि इंट्राएरे एक्सटेंशन स्थापित है तो पोस्टग्रेज पूर्णांक सरणी पर अनुक्रमणिका का उपयोग नहीं करता है

ऐसा तब होता है जब आपने "intarray इंस्टॉल किया हो। "एक्सटेंशन। आइए इसका परीक्षण करें:

drop extension intarray;

explain analyze
select * from test_intarray where codes @> array[123];
-- Uses "Bitmap Index Scan on test_intarray_idx"

"इंटरे" एक्सटेंशन पूर्णांक सरणियों के लिए अपने स्वयं के ऑपरेटर प्रदान करता है, जैसे कि @> , जबकि सूचकांक को जेनेरिक सरणी ऑपरेटरों के साथ काम करने के लिए डिज़ाइन किया गया है। यह स्कीमा-योग्य ऑपरेटरों का उपयोग करके प्रदर्शित किया जा सकता है:

create extension intarray;

explain analyze
select * from test_intarray where codes @> array[123];
-- Uses "Seq Scan on test_intarray"

explain analyze
select * from test_intarray where codes operator([email protected]>) array[123];
-- Uses "Bitmap Index Scan on test_intarray_idx"

अधिक विवरण के लिए यह चर्चा देखें:इंटरेरे मॉड्यूल से ओवरलोडेड &&ऑपरेटर इंडेक्स के उपयोग को रोकता है।

यदि आप अभी भी "इंटरे" एक्सटेंशन का लाभ लेना चाहते हैं, तो आप एक इंडेक्स बनाते समय इसकी अपनी ऑपरेटर क्लास "gin__int_ops" निर्दिष्ट कर सकते हैं (डिफ़ॉल्ट "array_ops" के बजाय):

create index test_intarray_idx2 on test_intarray using GIN (codes gin__int_ops);

explain analyze
select * from test_intarray where codes @> array[123];
-- Uses "Bitmap Index Scan on test_intarray_idx2"



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रोलअप के साथ SQL सर्वर ग्रुप के लिए PostgreSQL समकक्ष

  2. सरल स्लोनी-I प्रतिकृति सेटअप।

  3. PostgreSQLs कमांड लाइन उपयोगिता (psql) से कैसे बाहर निकलें

  4. त्रुटि:वर्ण 46 . पर स्कीमा user1_gmail_com के लिए अनुमति अस्वीकृत

  5. PostgreSQL - pgAdmin UI के माध्यम से एक नया DB बनाएँ