परीक्षण . के लिए जिन उद्देश्यों के लिए आप अनुक्रमिक स्कैन को "अक्षम" करके अनुक्रमणिका के उपयोग को बाध्य कर सकते हैं - केवल आपके वर्तमान सत्र में सर्वश्रेष्ठ:
SET enable_seqscan = OFF;
नहीं करें इसे एक उत्पादक सर्वर पर उपयोग करें। मैनुअल में विवरण यहाँ।
मैंने "अक्षम करना" उद्धृत किया, क्योंकि आप वास्तव में अनुक्रमिक तालिका स्कैन को अक्षम नहीं कर सकते। लेकिन कोई अन्य उपलब्ध विकल्प अब Postgres के लिए बेहतर है। यह साबित करेगा कि (metric_id, t)
. पर मल्टीकॉलम इंडेक्स कर सकते हैं इस्तेमाल किया जा सकता है - प्रमुख कॉलम पर एक इंडेक्स जितना प्रभावी नहीं है।
आप अपने PRIMARY KEY
. में कॉलम के क्रम को बदलकर संभवत:बेहतर परिणाम प्राप्त कर सकते हैं (और इसके साथ पर्दे के पीछे इसे लागू करने के लिए इस्तेमाल किया जाने वाला इंडेक्स) से (t, metric_id)
तक . या एक अतिरिक्त बनाएं इस तरह उलटे कॉलम के साथ अनुक्रमणिका।
- क्या पहले फ़ील्ड पर प्रश्नों के लिए एक समग्र अनुक्रमणिका भी अच्छी है?
आपको आम तौर पर मैन्युअल हस्तक्षेप से बेहतर क्वेरी योजनाओं को लागू करने की आवश्यकता नहीं होती है। अगर सेटिंग enable_seqscan = OFF
. है एक बहुत . की ओर ले जाता है बेहतर योजना, शायद आपके डेटाबेस में कुछ सही नहीं है। इस संबंधित उत्तर पर विचार करें:
- पोस्टग्रेएसक्यूएल को कभी-कभी खराब क्वेरी प्लान चुनने से रोकें