MongoDB कंपाउंड कुंजी को किसी तरह से जोड़ता है और इसे BTree में कुंजी के रूप में उपयोग करता है।
एकल आइटम ढूंढते समय - पेड़ में नोड्स का क्रम अप्रासंगिक है।
यदि आप कई नोड्स लौटा रहे हैं - एक दूसरे के करीब के तत्व पेड़ की समान शाखाओं के नीचे होंगे। नोड्स जितनी जल्दी रेंज में होते हैं, उतनी ही जल्दी उन्हें पुनः प्राप्त किया जा सकता है।
एकल फ़ील्ड अनुक्रमणिका के साथ - आदेश कोई मायने नहीं रखेगा। यदि वे आरोही क्रम में एक साथ निकट हैं तो वे अवरोही क्रम में भी एक साथ निकट होंगे।
जब आपके पास कंपाउंड कुंजी हो - आदेश मायने रखता है।
उदाहरण के लिए, यदि कुंजी A आरोही B आरोही है तो अनुक्रमणिका कुछ इस तरह दिख सकती है:
Row A B 1 1 1 2 2 6 3 2 7 4 3 4 5 3 5 6 3 6 7 5 1
A आरोही B अवरोही के लिए एक क्वेरी को पंक्तियों को वापस करने के लिए इंडेक्स के चारों ओर कूदने की आवश्यकता होगी और धीमी हो जाएगी। उदाहरण के लिए यह पंक्ति 1, 3, 2, 6, 5, 4, 7
. लौटाएगा
अनुक्रमणिका के समान क्रम में एक श्रेणीबद्ध क्वेरी केवल पंक्तियों को क्रमिक रूप से सही क्रम में लौटाएगी।
एक BTree में एक रिकॉर्ड ढूँढना O(Log(n)) समय लेता है। क्रम में रिकॉर्ड की एक श्रृंखला ढूँढना केवल OLog(n) + k है जहां k वापस आने वाले रिकॉर्ड की संख्या है।
यदि रिकॉर्ड खराब हैं, तो लागत OLog(n) * k
. जितनी अधिक हो सकती है