रेंज क्वेरीज़ के साथ कंपोजिट इंडेक्स में हाई कार्डिनैलिटी कॉलम प्लेसमेंट
रेंज कंडीशन वाले कंपोजिट इंडेक्स वाली टेबल को क्वेरी करते समय, का प्लेसमेंट सूचकांक के भीतर कॉलम प्रदर्शन को महत्वपूर्ण रूप से प्रभावित कर सकते हैं।
एक प्राथमिक कुंजी (किया, फ़ाइल नाम) और दो समग्र के साथ तालिका फ़ाइलों पर विचार करें अनुक्रमणिका: INDEX(फ़ाइलटाइम, ext) और INDEX(ext, फ़ाइलटाइम)। दोनों इंडेक्स में फ़ाइलटाइम कॉलम होता है, जिसमें ext की तुलना में अधिक कार्डिनैलिटी होती है।
क्वेरी:
WHERE ext = '...' AND filetime BETWEEN ... AND ...
एक्स्ट और फ़ाइलटाइम दोनों के आधार पर डेटा तक पहुंचने की आवश्यकता होती है। प्रश्न उठता है: ऐसी क्वेरी के लिए कौन सा सूचकांक इष्टतम है?
विश्लेषण
इष्टतम सूचकांक निर्धारित करने के लिए, हम FORCE INDEX का उपयोग कर सकते हैं और निष्पादन योजनाओं की जांच कर सकते हैं:
-- Force range on filetime first FORCE INDEX(fe) SELECT COUNT(*), AVG(fsize) FROM files WHERE ext = 'gif' AND filetime >= '2015-01-01' AND filetime = '2015-01-01' AND filetimeआउटपुट से पता चलता है कि INDEX(ext, filetime) (ef) में काफी कम पंक्ति संख्या है, जो अधिक कुशल स्कैन का संकेत देता है।
ऑप्टिमाइज़र ट्रेस
ऑप्टिमाइज़र के व्यवहार का और अधिक विश्लेषण करने के लिए, हम ऑप्टिमाइज़र का उपयोग कर सकते हैं ट्रेस:
SELECT explain_format = 'JSON'; SELECT COUNT(*), AVG(fsize) FROM files WHERE ext = 'gif' AND filetime >= '2015-01-01' AND filetime निष्कर्षविश्लेषण के आधार पर, निम्नलिखित निष्कर्ष हो सकते हैं तैयार:
श्रेणी प्रश्नों में उपयोग किए जाने वाले मिश्रित सूचकांकों के लिए, समानता विधेय (इस मामले में विस्तार) में शामिल कॉलम को रखा जाना चाहिए इंडेक्स परिभाषा में प्रथम।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3