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

MongoDB सूचकांक चौराहा

वैसे यह वास्तव में करता है भले ही यह इस मामले में नहीं है। वास्तव में यह देखने के लिए कि क्या हो रहा है, आपको true जोड़कर व्याख्या के "verbose" रूप को देखने की आवश्यकता है। :

db.t.find({item:"abc123",qty:{$gt:15}}).explain(true)
{
    "cursor" : "BtreeCursor item_1",
    "isMultiKey" : false,
    "n" : 84,
    "nscannedObjects" : 100,
    "nscanned" : 100,
    "nscannedObjectsAllPlans" : 201,
    "nscannedAllPlans" : 304,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 2,
    "nChunkSkips" : 0,
    "millis" : 2,
    "indexBounds" : {
            "item" : [
                    [
                            "abc123",
                            "abc123"
                    ]
            ]
    },
    "allPlans" : [
            {
                    "cursor" : "BtreeCursor item_1",
                    "isMultiKey" : false,
                    "n" : 84,
                    "nscannedObjects" : 100,
                    "nscanned" : 100,
                    "scanAndOrder" : false,
                    "indexOnly" : false,
                    "nChunkSkips" : 0,
                    "indexBounds" : {
                            "item" : [
                                    [
                                            "abc123",
                                            "abc123"
                                    ]
                            ]
                    }
            },
            {
                    "cursor" : "BtreeCursor qty_1",
                    "isMultiKey" : false,
                    "n" : 0,
                    "nscannedObjects" : 101,
                    "nscanned" : 102,
                    "scanAndOrder" : false,
                    "indexOnly" : false,
                    "nChunkSkips" : 0,
                    "indexBounds" : {
                            "qty" : [
                                    [
                                            15,
                                            Infinity
                                    ]
                            ]
                    }
            },
            {
                    "cursor" : "Complex Plan",
                    "n" : 0,
                    "nscannedObjects" : 0,
                    "nscanned" : 102,
                    "nChunkSkips" : 0
            }
    ],

संक्षिप्त करें, लेकिन अंतिम भाग वह है जिसे आप ढूंढ रहे हैं। जैसा कि मैनुअल में बताया गया है, "कॉम्प्लेक्स प्लान" की उपस्थिति का अर्थ है कि एक चौराहे का उपयोग किया जा रहा है।

            {
                    "cursor" : "Complex Plan",
                    "n" : 0,
                    "nscannedObjects" : 0,
                    "nscanned" : 102,
                    "nChunkSkips" : 0
            }

यहां एकमात्र मामला यह है कि जब इसे "देखा जा रहा है" तो इसे इस मामले में अनुकूलक द्वारा सबसे "इष्टतम" क्वेरी के रूप में नहीं चुना जा रहा है। तो ऑप्टिमाइज़र कह रहा है कि वास्तव में केवल एक चयनित इंडेक्स का उपयोग करने वाली योजना वह है जो सबसे अधिक प्रतिक्रियाशील फैशन में पूरी होगी।

इसलिए जब "चौराहे" पर विचार किया गया, तो यह "सर्वश्रेष्ठ फिट" नहीं था और एकल अनुक्रमणिका को चुना गया था।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं नेवला में किसी ऑब्जेक्ट को सहेजने के बाद ऑब्जेक्ट आईडी कैसे प्राप्त करूं?

  2. नेवला स्कीमा में create_at और update_at फ़ील्ड जोड़ें

  3. नेवला -- बल संग्रह का नाम

  4. GSSException:कोई मान्य क्रेडेंशियल प्रदान नहीं किया गया (तंत्र स्तर:कोई Kerberos tgt खोजने में विफल)

  5. नेवला के साथ mongodb में डेटाबेस डिजाइन करने के लिए सलाह की आवश्यकता है