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

MongoDB कैंडिडेट प्लान कैसे चुनें

यदि संग्रह में परिभाषित कई इंडेक्स द्वारा एक क्वेरी को संतुष्ट किया जा सकता है, तो MongoDB समानांतर में सभी लागू इंडेक्स का परीक्षण करेगा। पहला इंडेक्स जो 101 परिणाम लौटा सकता है, उसे क्वेरी प्लानर द्वारा चुना जाएगा। अनुक्रमणिका चयन के अन्य पहलू भी हैं, लेकिन सामान्य तौर पर यह क्वेरी ऑप्टिमाइज़ेशन दस्तावेज़ीकरण।

यह अनुक्रमणिका चयन विधि एक उप-इष्टतम अनुक्रमणिका का चयन कर सकती है। ऐसा इसलिए है क्योंकि मोंगोडीबी के दृष्टिकोण से, आपके पास कई इंडेक्स हैं जो एक ही चीज़ का वर्णन करते हैं। आपके द्वारा देखे गए उप-इष्टतम अनुक्रमणिका चयन को कम करने के लिए, आप यह कर सकते हैं:

  1. उन सभी अनुक्रमणिकाओं को हटा दें जिन्हें आप उप-इष्टतम पाते हैं।

    यह सुनिश्चित करने के लिए है कि क्वेरी प्लानर के पास आपके द्वारा अपनी क्वेरी के लिए तैयार किए गए इंडेक्स को चुनने के अलावा कोई अन्य विकल्प नहीं है।

  2. hint() का प्रयोग करें विधि

    hint() आपको MongoDB को क्वेरी के लिए निर्धारित अनुक्रमणिका का उपयोग करने के लिए स्पष्ट रूप से बताने की अनुमति देता है। उदाहरण के लिए:

    db.tasks.find(...).hint({project: 1, created_by: 1})
    

    कृपया https://docs.mongodb.com/v2 देखें। 6/संदर्भ/ऑपरेटर/मेटा/संकेत/ hint() . के बारे में अधिक जानकारी के लिए ।

आपकी क्वेरी में एक और बारीकियां यह है कि इसमें एक $or . शामिल है ऑपरेटर। इस मामले में, हर शब्द $or . में व्यंजक के साथ एक अनुक्रमणिका संबद्ध होनी चाहिए , अन्यथा MongoDB एक संग्रह स्कैन करेगा (BasicCursor मोंगोडीबी 2.6 शर्तों में)। इसे https://docs पर अधिक विवरण में समझाया गया है .mongodb.com/v2.6/reference/operator/query/or/#behaviors




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब का उपयोग करके किसी इकाई में स्थान को कैसे परिभाषित करें?

  2. JasperReport लाइब्रेरी और MongoDB के साथ PDF जेनरेट करें

  3. CentOS 7 . पर MongoDB स्थापित करना

  4. mongodb $ जहां उप-दस्तावेज़ सामग्री लाने के लिए क्वेरी

  5. मोंगो जावा ड्राइवर सीमा विधि का पालन नहीं कर रहा है