यदि आप नियमित बी-ट्री इंडेक्स (या हैश इंडेक्स, लेकिन उनका वास्तव में उपयोग नहीं किया जाना चाहिए) के अलावा किसी अन्य इंडेक्स विधि का उपयोग करना चाहते हैं तो आपको जीआईएसटी का उपयोग करना चाहिए। PostGIS अनुक्रमणिका को GiST की आवश्यकता होती है।
बी-ट्री इंडेक्स का उपयोग केवल समानता या क्रम से जुड़े बुनियादी कार्यों के लिए किया जा सकता है, जैसे =
, <
, <=
, >
, >=
, <>
, BETWEEN
और IN
. जब आप एक ज्यामितीय वस्तु (बिंदु, क्षेत्र, आदि) पर एक बी-ट्री इंडेक्स बना सकते हैं, तो इसका उपयोग केवल समानता के लिए किया जा सकता है, जैसे कि >
ऐसी वस्तुओं के लिए आम तौर पर अर्थहीन होते हैं। अधिक जटिल और सामान्य तुलनाओं जैसे "contains", "intersects", आदि का समर्थन करने के लिए एक GiST इंडेक्स की आवश्यकता होती है।
आप btree_gist
का इस्तेमाल कर सकते हैं विस्तार
जीआईएसटी के लिए बी-ट्री इंडेक्सिंग को सक्षम करने के लिए। यह नियमित बी-ट्री इंडेक्स की तुलना में काफी धीमा है, लेकिन आपको एक मल्टी-कॉलम इंडेक्स बनाने की अनुमति देता है जिसमें केवल जीआईएसटी प्रकार और नियमित प्रकार जैसे text
शामिल हैं। , integer
, आदि.
इन स्थितियों में आपको वास्तव में explain analyze
. का उपयोग करने की आवश्यकता है (explain.depesz.com
इसके लिए उपयोगी है) यह जांचने के लिए कि पीजी आपके द्वारा बनाए गए इंडेक्स के विभिन्न इंडेक्स और संयोजनों का उपयोग कैसे करता है। मल्टी-कॉलम इंडेक्स में अलग-अलग कॉलम ऑर्डरिंग आज़माएं, और देखें कि क्या दो या दो से अधिक अलग इंडेक्स अधिक प्रभावी हैं।
मुझे बहुत संदेह है कि इस मामले में आपको बहु-स्तंभ GiST अनुक्रमणिका के साथ सर्वोत्तम परिणाम प्राप्त होंगे, लेकिन मैं अनुक्रमणिका और अनुक्रमणिका स्तंभ क्रमों के कई अलग-अलग संयोजनों को देखने की कोशिश करूंगा।