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

जब फ़ील्ड का बड़ा संयोजन मौजूद है तो MongoDB में अनुक्रमणिका का सही तरीका क्या है?

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

"छोटा" का अर्थ डेटा सेट और क्वेरी पर भिन्न होता है। एक सूचकांक समझ में आता है या नहीं, यह तय करते समय 1% चयनात्मकता बहुत सुरक्षित है। यदि कोई विशेष मान मौजूद है, मान लीजिए, 10% दस्तावेज़ों में, तालिका स्कैन करना संबंधित फ़ील्ड पर किसी अनुक्रमणिका का उपयोग करने की तुलना में अधिक कुशल हो सकता है।

इसे ध्यान में रखते हुए, आपके कुछ क्षेत्र चयनात्मक . होंगे और कुछ नहीं होंगे। उदाहरण के लिए, मुझे संदेह है कि "ओके" द्वारा फ़िल्टर करना बहुत चयनात्मक नहीं होगा। आप गैर-चयनात्मक क्षेत्रों को अनुक्रमण विचारों से समाप्त कर सकते हैं - यदि कोई व्यक्ति सभी ऑर्डर चाहता है जो "ठीक" हैं और कोई अन्य शर्तें नहीं हैं तो वे एक टेबल स्कैन कर लेंगे। यदि कोई ऐसे आदेश चाहता है जो "ठीक" हैं और अन्य शर्तें हैं, तो अन्य शर्तों पर जो भी सूचकांक लागू होगा, उसका उपयोग किया जाएगा।

अब जब आपके पास चयनात्मक (या कम से कम कुछ चुनिंदा) फ़ील्ड रह गए हैं, तो विचार करें कि कौन से प्रश्न लोकप्रिय और चयनात्मक दोनों हैं। उदाहरण के लिए, शायद ब्रांड+प्रकार ऐसा संयोजन होगा। आप उन लोकप्रिय प्रश्नों से मेल खाने वाली मिश्रित अनुक्रमणिकाएँ जोड़ सकते हैं जिनकी आप चयनात्मक होने की अपेक्षा करते हैं।

अब, अगर कोई केवल ब्रांड के आधार पर फ़िल्टर करता है तो क्या होगा? यह डेटा के आधार पर चयनात्मक हो सकता है या नहीं। यदि आपके पास पहले से ही ब्रांड+प्रकार पर एक मिश्रित अनुक्रमणिका है, तो आप यह निर्धारित करने के लिए डेटाबेस पर छोड़ देंगे कि ब्रांड+प्रकार अनुक्रमणिका के माध्यम से या संग्रह स्कैन के माध्यम से केवल एक ब्रांड क्वेरी को पूरा करने के लिए अधिक कुशल है या नहीं।

अन्य लोकप्रिय प्रश्नों और क्षेत्रों के साथ इसी तरह जारी रखें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सरणी का अंतिम तत्व प्राप्त करने के लिए $slice ऑपरेटर का उपयोग करना

  2. डोकर-लिखें के साथ mongodb में उपयोगकर्ता कैसे बनाएं?

  3. सीएमके एक्सटर्नलप्रोजेक्ट_एड का उपयोग करके मोंगो-सीएक्सएक्स-ड्राइवर का निर्माण

  4. एक सरणी के भीतर एक दस्तावेज़ को हटाने (खींचने) नेवला, ObjectID के साथ काम नहीं करता है

  5. Mongodb डुप्लिकेट प्रविष्टियों से बचें