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

पोस्टग्रेज जीआईएसटी बनाम बीट्री इंडेक्स

यदि आप नियमित बी-ट्री इंडेक्स (या हैश इंडेक्स, लेकिन उनका वास्तव में उपयोग नहीं किया जाना चाहिए) के अलावा किसी अन्य इंडेक्स विधि का उपयोग करना चाहते हैं तो आपको जीआईएसटी का उपयोग करना चाहिए। PostGIS अनुक्रमणिका को GiST की आवश्यकता होती है।

बी-ट्री इंडेक्स का उपयोग केवल समानता या क्रम से जुड़े बुनियादी कार्यों के लिए किया जा सकता है, जैसे = , < , <= , > , >= , <> , BETWEEN और IN . जब आप एक ज्यामितीय वस्तु (बिंदु, क्षेत्र, आदि) पर एक बी-ट्री इंडेक्स बना सकते हैं, तो इसका उपयोग केवल समानता के लिए किया जा सकता है, जैसे कि > ऐसी वस्तुओं के लिए आम तौर पर अर्थहीन होते हैं। अधिक जटिल और सामान्य तुलनाओं जैसे "contains", "intersects", आदि का समर्थन करने के लिए एक GiST इंडेक्स की आवश्यकता होती है।

आप btree_gist का इस्तेमाल कर सकते हैं विस्तार जीआईएसटी के लिए बी-ट्री इंडेक्सिंग को सक्षम करने के लिए। यह नियमित बी-ट्री इंडेक्स की तुलना में काफी धीमा है, लेकिन आपको एक मल्टी-कॉलम इंडेक्स बनाने की अनुमति देता है जिसमें केवल जीआईएसटी प्रकार और नियमित प्रकार जैसे text शामिल हैं। , integer , आदि.

इन स्थितियों में आपको वास्तव में explain analyze . का उपयोग करने की आवश्यकता है (explain.depesz.com इसके लिए उपयोगी है) यह जांचने के लिए कि पीजी आपके द्वारा बनाए गए इंडेक्स के विभिन्न इंडेक्स और संयोजनों का उपयोग कैसे करता है। मल्टी-कॉलम इंडेक्स में अलग-अलग कॉलम ऑर्डरिंग आज़माएं, और देखें कि क्या दो या दो से अधिक अलग इंडेक्स अधिक प्रभावी हैं।

मुझे बहुत संदेह है कि इस मामले में आपको बहु-स्तंभ GiST अनुक्रमणिका के साथ सर्वोत्तम परिणाम प्राप्त होंगे, लेकिन मैं अनुक्रमणिका और अनुक्रमणिका स्तंभ क्रमों के कई अलग-अलग संयोजनों को देखने की कोशिश करूंगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pgadmin को docker में पोस्टग्रेज करने के लिए कनेक्ट करना

  2. पोस्टग्रेज टेबलफंक क्रॉसस्टैब () के साथ शून्य व्यक्तिगत मान लौटाना

  3. PostgreSQL में JSONB मान मर्ज करना?

  4. PostgreSQL टेबल पर आईडी के अनुक्रम को कैसे रीसेट करें

  5. PostgreSQL रेंज प्रकारों में NULL बनाम `अनंतता`