बूलियन फ़ील्ड्स को अनुक्रमित करने का प्रदर्शन निहितार्थ
डेटाबेस सिस्टम में, इंडेक्सिंग फ़ील्ड डेटाबेस इंजन को स्कैन किए बिना डेटा को जल्दी से ढूंढने की अनुमति देकर क्वेरी प्रदर्शन में सुधार करती है पूरी मेज. हालाँकि, बूलियन फ़ील्ड्स को अनुक्रमित करने का प्रदर्शन लाभ बहस का विषय रहा है। सच है, बूलियन फ़ील्ड को अनुक्रमित करने से वास्तव में प्रदर्शन में वृद्धि हो सकती है। InnoDB जैसे डेटाबेस इंजन बूलियन फ़ील्ड के लिए बिटमैप इंडेक्सिंग नामक एक विशेष तकनीक का उपयोग करते हैं। यह तकनीक फ़ील्ड मानों (सही/गलत) के आधार पर तालिका को विभाजनों में विभाजित करती है। मेज़। यदि बिट को 1 पर सेट किया गया है, तो यह इंगित करता है कि संबंधित पंक्ति में बूलियन फ़ील्ड के लिए मान सत्य है। इंजन फिर इन बिटमैप्स वाला एक इंडेक्स बनाता है।
WHERE boolean_field=true जैसी क्वेरी निष्पादित करते समय, इंजन true मान के अनुरूप विभाजन का पता लगाता है। इसके बाद यह मानदंड से मेल खाने वाली पंक्तियों की पहचान करने के लिए बिटमैप को स्कैन करता है, शेष पंक्तियों को अन्य विभाजनों में छोड़ देता है। यह संपूर्ण तालिका को स्कैन करने की तुलना में जांचने के लिए आवश्यक पंक्तियों की संख्या को काफी कम कर देता है।
अनुभवजन्य उदाहरणजैसा कि दिए गए उत्तर में बताया गया है, एक का जोड़ 4 मिलियन पंक्तियों वाली तालिका में परिमाण के क्रम के आधार पर बूलियन फ़ील्ड पर त्वरित क्वेरीज़ का सूचकांक। 9 सेकंड का आरंभिक निष्पादन समय घटकर एक सेकंड के एक अंश तक रह गया। यह संभावित प्रदर्शन को बढ़ावा देता है जो बिटमैप इंडेक्सिंग प्रदान कर सकता है। जहां क्वेरी विशेष रूप से बूलियन फ़ील्ड पर फ़िल्टर होती है और डेटा वितरण बिटमैप अनुक्रमण के प्रभावी उपयोग की अनुमति देता है। इसलिए, बूलियन फ़ील्ड को अनुक्रमित करने पर विचार करें जब डेटासेट विशिष्ट मानों के प्रति एक महत्वपूर्ण पूर्वाग्रह प्रदर्शित करता है या जब क्वेरी वर्कलोड में अक्सर उन फ़ील्ड पर फ़िल्टरिंग शामिल होती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3