इस पोस्ट में, हम आपको दिखाएंगे कि MongoDB में अप्रयुक्त इंडेक्स कैसे ढूंढें, अपने इंडेक्स संग्रह पर उपयोग के आंकड़े जांचें, और अपने अप्रयुक्त इंडेक्स को कैसे छोड़ें।
कई एप्लिकेशन रिलीज पर MongoDB डेटाबेस इंडेक्स को सक्रिय रूप से प्रबंधित करना विकास टीमों के लिए चुनौतीपूर्ण हो सकता है। आवश्यकताएँ अक्सर प्रत्येक रिलीज़ के साथ बदल जाती हैं, जहाँ कई नई अनुक्रमणिकाएँ जोड़ी जा सकती हैं और पुरानी अनुक्रमणिकाएँ छोड़ी जा सकती हैं। समय के साथ, इससे यह ट्रैक करना मुश्किल हो जाता है कि कौन से MongoDB अनुक्रमणिका का उपयोग किया जा रहा है और कौन से अब अनावश्यक हैं।
इंडेक्स का लेखन प्रदर्शन पर बड़ा प्रभाव पड़ता है - हर बार जब किसी संग्रह में कोई लेखन होता है, तो संबंधित इंडेक्स को अपडेट करने की आवश्यकता होती है। इंडेक्स की कमी तुरंत प्रकट होती है और क्वेरी को धीमा कर देती है - अप्रयुक्त इंडेक्स अधिक सूक्ष्म होते हैं और लेखन प्रदर्शन में सुधार के लिए सक्रिय रूप से छंटनी की आवश्यकता होती है। अधिक जानकारी यहां मिल सकती है - मोंगोडीबी पर इंडेक्स बनाने के खतरे।
MongoDB के पुराने संस्करणों में, यह निर्धारित करने का कोई आसान तरीका नहीं था कि किसी इंडेक्स का उपयोग नहीं किया जा रहा है या नहीं। हालांकि, संस्करण 3.2 से शुरू होकर, MongoDB ने $indexStats ऑपरेटर के लिए समर्थन जोड़ा, जिससे आप अपने इंडेक्स उपयोग के बारे में आंकड़े एकत्र कर सकते हैं।
MongoDB में अप्रयुक्त इंडेक्स ढूंढना
किसी संग्रह पर किसी विशेष इंडेक्स के उपयोग के आंकड़ों की जांच करने के लिए, आप इस कमांड का उपयोग कर सकते हैं:
db.collection.aggregate([{$indexStats: {}}, {$match: {"name": "<indexname>"}}])
एक संग्रह के सभी इंडेक्स के आंकड़े प्राप्त करने के लिए:
db.collection.aggregate([{$indexStats:{}}])
लौटा हुआ दस्तावेज़ इस तरह दिखेगा:
{ "name" : "test", "key" : { "key" : 1 }, "host" : "xxx:27017", "accesses" : { "ops" : NumberLong(145), "since" : ISODate("2017-11-25T16:21:36.285Z") } }
यहां ध्यान देने योग्य दो महत्वपूर्ण क्षेत्र हैं:
-
Ops
यह उन संक्रियाओं की संख्या है जो अनुक्रमणिका का उपयोग करती हैं।
-
चूंकि
यह वह समय है जब से MongoDB ने आंकड़े एकत्र किए हैं, और यह आमतौर पर अंतिम प्रारंभ समय होता है।
MongoDB में अप्रयुक्त इंडेक्स को छोड़ना
एक बार जब आप अप्रयुक्त MongoDB अनुक्रमणिका की पहचान और सत्यापन कर लेते हैं, तो आप नीचे दिए गए कोड का उपयोग करके अनुक्रमणिका को छोड़ सकते हैं:
db.collection.dropIndex( "<index name>"); or db.collection.dropIndex("{key1:1.....}")
हमेशा की तरह कृपया पुष्टि करें कि ड्रॉप ऑपरेशन के साथ आगे बढ़ने से पहले आप सही इंडेक्स छोड़ रहे हैं।
यदि आपके पास MongoDB में अप्रयुक्त अनुक्रमणिका खोजने के बारे में कोई प्रश्न हैं, तो नीचे एक टिप्पणी छोड़ें या [email protected] पर हमसे संपर्क करें।