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

क्या मुझे मोंगोडब में बूलियन झंडे के लिए स्पैस इंडेक्स का उपयोग करना चाहिए?

विरल झंडा थोड़ा अजीब है। यह समझने के लिए कि इसका उपयोग कब करना है, आपको यह समझना होगा कि "विरल" पहले स्थान पर क्यों मौजूद है।

जब आप एक फ़ील्ड पर एक साधारण अनुक्रमणिका बनाते हैं, तो प्रत्येक दस्तावेज़ के लिए एक प्रविष्टि होती है, यहाँ तक कि ऐसे दस्तावेज़ भी जिनमें वह फ़ील्ड नहीं है।

उदाहरण के लिए, यदि आपके पास {rarely_set_field : 1} . पर कोई अनुक्रमणिका है , आपके पास एक इंडेक्स होगा जो ज्यादातर null . से भरा होता है क्योंकि ज्यादातर मामलों में वह क्षेत्र मौजूद नहीं होता है। यह स्थान की बर्बादी है और इसे खोजना अक्षम है।

{sparse:true} विकल्प null . से छुटकारा पायेगा मान, इसलिए आपको एक इंडेक्स मिलता है जिसमें केवल प्रविष्टियां होती हैं जब {rarely_set_field} परिभाषित किया गया है।

अपने मामले पर वापस जाएं।

आप बूलियन + स्पैस का उपयोग करने के बारे में पूछ रहे हैं। लेकिन विरल वास्तव में "बूलियन" को प्रभावित नहीं करता है, विरल प्रभाव "सेट बनाम सेट नहीं है"।

आपके मामले में, आप unfinished को लाने का प्रयास कर रहे हैं . sparse का लाभ उठाने के लिए कुंजी बूलियन मान नहीं है, लेकिन तथ्य यह है कि unfinished प्रविष्टियों में वह कुंजी होती है और "समाप्त" प्रविष्टियों में कोई कुंजी नहीं होती है।

{ _id: 1, data: {...}, unfinished: true }
{ _id: 2, data: {...} } // this entry is finished

ऐसा लगता है कि आप किसी कतार का उपयोग कर रहे हैं

विरल सूचकांक को लागू करने के लिए आप निश्चित रूप से ऊपर दी गई जानकारी का लाभ उठा सकते हैं। हालांकि, वास्तव में ऐसा लगता है कि आप एक कतार का उपयोग कर रहे हैं। MongoDB एक कतार के रूप में सेवा योग्य है, यहां दो ए> उदाहरण

हालाँकि, यदि आप कतार को देखते हैं, तो वे इसे वैसे नहीं कर रहे हैं जैसा आप कर रहे हैं। मैं व्यक्तिगत रूप से कुछ उत्पादन प्रणालियों के लिए एक कतार के रूप में MongoDB का उपयोग कर रहा हूं और यह बहुत अच्छी तरह से चलता है, लेकिन अपने अपेक्षित भार का परीक्षण करें क्योंकि एक समर्पित कतार बेहतर प्रदर्शन करेगी।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. JSON से एक नेवला स्कीमा कैसे बनाएं

  2. नेवला डेटाबेस में अंतिम दस प्रविष्टियाँ ढूँढता है

  3. मोंगोस के साथ मोंगोडीबी में प्रवाह को खोजने, संशोधित करने, बचाने में संघर्ष को संभालना

  4. क्या नेवला प्री ('सेव') में संपत्ति के पिछले मूल्य तक पहुंच प्रदान करता है?

  5. कुप्पी में _Id द्वारा MongoDB प्राप्त करने में त्रुटि