MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडीबी में इंडेक्स की दिशा क्यों मायने रखती है?

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

. जितनी अधिक हो सकती है

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js . में स्व-हस्ताक्षरित प्रमाणपत्रों के साथ MongoDB SSL

  2. दस्तावेज़ों के नेस्टेड सरणी में एम्बेडेड दस्तावेज़ निकालें

  3. mongoDB में भू-स्थानिक जानकारी कैसे संग्रहीत करें?

  4. मैं जावा मोंगोड्राइवर का उपयोग करके एक मोंगोडीबी जेएस स्क्रिप्ट कैसे निष्पादित करूं?

  5. ClusterControl में अपने क्लस्टर टोपोलॉजी को विज़ुअलाइज़ करना