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

MongoDB उप-दस्तावेज़ों की सरणी पर कई अनुक्रमणिका बनाम एकल अनुक्रमणिका?

यह मूल रूप से उबलता है यदि आकार एन के 10 इंडेक्स आकार एन * 10 के एक इंडेक्स से अधिक कुशल हैं। यदि आप पूरी तरह से पढ़ते हैं तो अलग इंडेक्स हमेशा तेज होना चाहिए। संबंधित बी-ट्री वॉक एक छोटे कीसेट आदि की जांच करेंगे।

हालांकि विचार करने के लिए कुछ बिंदु हैं:

  • सरणी फ़ील्ड पर अनुक्रमणिका मूल रूप से प्रत्येक सरणी तत्व को अलग से अनुक्रमित करती है। जैसे कि लुकअप ओवरहेड बी-ट्री वॉक के दौरान अधिकतम 1-2 अतिरिक्त चरण होंगे जो कि एक नगण्य प्रदर्शन हिट है। दूसरे शब्दों में, वे लगभग उतने ही तेज़ होंगे।
  • 10 इंडेक्स होने का मतलब यह हो सकता है कि प्रत्येक अपडेट/इंसर्ट को अपडेट करने के लिए एक से अधिक इंडेक्स की आवश्यकता होगी (इस पर निर्भर करता है कि आपकी इंडेक्स एक फ़ील्ड साझा करती है या यदि आप एक समय में 1 से अधिक टाइमस्टैम्प अपडेट करते हैं)। यह एक महत्वपूर्ण प्रदर्शन विचार है।
  • सरणी अनुक्रमणिका का उपयोग करने से अतिरिक्त टाइमस्टैम्प (उदा. टाइमस्टैम्प10) जोड़ना थोड़ा आसान हो जाता है।
  • प्रति डेटाबेस (24k) आप उपयोग कर सकते हैं नामस्थानों की संख्या की एक सीमा है और प्रत्येक अनुक्रमणिका एक लेता है। यदि आप प्रति फ़ील्ड एक अलग अनुक्रमणिका बनाते हैं तो यह एक समस्या बन सकती है।
  • सबसे महत्वपूर्ण बात यह है कि सरणी अनुक्रमणिका अधिक सरल है और आपके कोड और इस प्रकार रखरखाव को सरल बनाएगी। सीमित प्रदर्शन अंतर को देखते हुए मैं कहूंगा कि यह यहां एक सरणी अनुक्रमणिका के लिए जाने के लिए सबसे मजबूत प्रेरणा है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला में एक सरणी मान को कैसे अपडेट करें

  2. क्या अनुक्रमित कुंजियों पर कर्सर.स्किप () हमेशा तेज होता है?

  3. मोंगोडीबी कंपाउंड इंडेक्स - क्या सॉर्ट ऑर्डर मायने रखता है?

  4. निष्पादन का उपयोगपॉप्युलेट ()

  5. बिना लुकअप के मोंगो में दो संग्रह कैसे जुड़ें?