संपादित 4 महीने पहले द्वारा ExtremeHow संपादकीय टीम
अनुकूलनप्रदर्शनमोंगोडीबीमैकडेटाबेसट्यूनिंगविकासकॉन्फ़िगरेशनअनुक्रमणक्वेरी
अनुवाद अपडेट किया गया 4 महीने पहले
MongoDB एक लोकप्रिय NoSQL डेटाबेस है जो अपनी लचीलता और विस्तारक्षमता के लिए जाना जाता है। यदि आप मैक पर काम कर रहे हैं और अपने प्रोजेक्ट के लिए MongoDB का उपयोग कर रहे हैं, तो आपको कभी-कभी इसका प्रदर्शन उतना अनुकूलित नहीं लग सकता जितना आप चाहेंगे। यह गाइड विशेष रूप से Mac पर MongoDB प्रदर्शन को अनुकूलित करने के लिए व्यापक जानकारी प्रदान करता है, जिसमें विन्यास, हार्डवेयर, इंडेक्सिंग और अधिक जैसे विभिन्न पहलुओं पर ध्यान केंद्रित किया गया है।
अनुकूलन में गोता लगाने से पहले, MongoDB की मूल बातें समझना महत्वपूर्ण है। MongoDB डेटा को लचीले, JSON- जैसे दस्तावेज़ों में संग्रहीत करता है, जिसका अर्थ है कि फ़ील्ड दस्तावेज़ से दस्तावेज़ भिन्न हो सकते हैं, और समय के साथ डेटा संरचना को बदला जा सकता है। यह बाहर निकलने के लिए डिज़ाइन किया गया है और अपने वितरित प्रकृति के कारण बड़े डेटा सेट के साथ अच्छी तरह से काम करता है।
यदि आपने अभी तक अपने मैक पर MongoDB स्थापित नहीं किया है, तो आप ऐसा Homebrew का उपयोग करके कर सकते हैं, जो MacOS के लिए पैकेज प्रबंधक है। यहां चरण दिए गए हैं:
brew tap mongodb/brew brew install mongodb-community
इन कमांड्स के साथ, आप MongoDB के कम्युनिटी संस्करण को स्थापित करते हैं, जो ओपन-सोर्स और मुफ्त है। सुनिश्चित करें कि MongoDB सही ढंग से चल रहा है MongoDB सर्वर को शुरू करके:
brew services start mongodb/brew/mongodb-community
MongoDB स्थापित हो जाने के बाद, उसका प्रदर्शन अनुकूलित करना विन्यास के साथ शुरू होता है। MongoDB की विन्यास फ़ाइल आपको डेटाबेस संचालन के कई पहलुओं को नियंत्रित करने की अनुमति देती है। प्रमुख विन्यास सेटिंग्स में शामिल हैं:
/usr/local/etc/mongod.conf
पर पाई जाती है)।
storage: wiredTiger: engineConfig: cacheSizeGB: X
इंडेक्स क्वेरी प्रदर्शन को काफी बढ़ा सकते हैं क्योंकि इससे MongoDB को स्कैन करने के लिए डेटा की मात्रा कम हो जाती है। हालांकि, बहुत अधिक इंडेक्स बनाने से लिखने के संचालन के ओवरहेड में वृद्धि हो सकती है।
प्रभावी इंडेक्सिंग के लिए इन सुझावों का पालन करें:
db.collection.getIndexes()
विधि के साथ इंडेक्स उपयोग की निगरानी करें।MongoDB में एक इंडेक्स बनाने के लिए निम्नलिखित का उपयोग करें:
db.yourCollection.createIndex( { fieldName: 1 } )
शार्डिंग प्रक्रिया है जिसमें डेटाबेस को छोटे, तेज़ और अधिक आसानी से प्रबंधित हिस्सों में विभाजित किया जाता है जिन्हें शार्ड्स कहा जाता है। MongoDB शार्ड्स के पार डेटा वितरण को संभालता है। Mac पर, यदि आपके पास एक बड़ा डेटा सेट है जो आपके वर्तमान सेटअप में फिट नहीं होता है, तो आप शार्डिंग का उपयोग करना चाह सकते हैं।
शार्डिंग को सक्षम करने के लिए चरण:
sh.enableSharding("yourDatabaseName")
sh.shardCollection("yourDatabaseName.yourCollectionName", { "yourShardKey": 1 })
शार्ड कुंजियों को समझदारी से चुनें क्योंकि वे क्वेरी प्रदर्शन और सिस्टम संतुलन को प्रभावित करते हैं।
MongoDB का प्रदर्शन आपके मैक के हार्डवेयर द्वारा भी प्रभावित होता है। यहां कुछ तरीके दिए गए हैं जिनसे आप अनुकूलित प्रदर्शन सुनिश्चित कर सकते हैं:
अपने MongoDB इंस्टेंस की नियमित रूप से निगरानी करें ताकि बोतलनेक्स या असामान्य व्यवहार की पहचान हो सके। उन क्वेरियों को लॉग करने के लिए प्रोफाइलिंग का उपयोग करें जो निर्दिष्ट समय से अधिक लेती हैं।
प्रोफाइलिंग सक्षम करें:
db.setProfilingLevel(2)
यह कमांड सभी संचालन को लॉग करता है। आप केवल धीमे संचालन को लॉग करने के लिए निम्नलिखित का उपयोग कर सकते हैं:
db.setProfilingLevel(1, { slowms: 100 })
रीयल-टाइम में विभिन्न सांख्यिकी की निगरानी के लिए MongoDB Atlas जैसे उपकरण या कमांड लाइन यूटिलिटीज़ जैसे mongotop
और mongostat
का उपयोग करें।
कनेक्शन पूलिंग कई अनुरोधों को एक ही डेटाबेस कनेक्शन साझा करने की अनुमति देती है। हर अनुरोध के लिए एक नया कनेक्शन खोलने और बंद करने के बजाय, जो संसाधन-गहन होता है, MongoDB उपयोग के लिए तैयार कनेक्शनों का एक पूल बनाए रखता है।
सुनिश्चित करें कि आपका क्लाइंट लाइब्रेरी कनेक्शन पूलिंग के लिए सेट है। एक Node.js ऐप्लिकेशन में, आप इसे इस तरह से लागू होते हुए देख सकते हैं:
const MongoClient = require('mongodb').MongoClient; const url = 'yourMongoDBURL'; const dbName = 'yourDatabaseName'; const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true, poolSize: 10 }); client.connect(function(err) { if (err) throw err; console.log('Connected to MongoDB with pooling!'); const db = client.db(dbName); // Perform operations });
MongoDB क्वेरी का प्रदर्शन बड़े तौर पर क्वेरियों के संरचना पर निर्भर करता है। अनुकूलन के लिए:
विशिष्ट अनुमानों वाली क्वेरी का उदाहरण:
db.yourCollection.find({ "status": "active" }, { "name": 1, "email": 1 })
मैक पर MongoDB के प्रदर्शन को अनुकूलित करना कॉन्फ़िगरेशन ट्यूनिंग, प्रभावी इंडेक्सिंग, संसाधन आवंटन और सावधानीपूर्वक निगरानी का संयोजन है। जिन रणनीतियों का उल्लेख किया गया है, उनका पालन करके, आप अपने macOS पर MongoDB इंस्टेंस के प्रदर्शन और विश्वसनीयता को काफी हद तक बढ़ा सकते हैं। याद रखें कि डेटा वृद्धि और कार्यभार में बदलाव के आधार पर अनुकूलन में समय के साथ समायोजन की आवश्यकता हो सकती है।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं