यह इस बात पर भी निर्भर करता है कि आप किस तरह की पूछताछ कर रहे हैं, कृपया जांचें कि क्या नीचे दिए गए बिंदु हैं -
- क्या बहुत सारे एकत्रीकरण प्रश्न हैं? आपके पास किस प्रकार की संग्रह संरचना है अर्थात
- क्या बहुत सारे नेस्टेड सरणियाँ हैं?
- क्या यह सिंगल इंस्टेंस या रेप्लिका सेट है? अलग-अलग नोड को पढ़ने और लिखने के साथ एक प्रतिकृति सेट डालने का प्रयास करें।
- क्या क्वेरी कई संग्रहों से डेटा लौटा रही हैं?
- जांचें कि आपका इंस्टेंस कितने % संचालन के लिए पृष्ठ-दोषपूर्ण है?
- उच्च लॉक/कतार की अवधि के दौरान उच्च nscanned या scanAndOrder के साथ संचालन के लिए अपने लॉग जांचें, और तदनुसार अनुक्रमणिका करें।
- $all, $push/$pop/$addToSet जैसे CPU-गहन ऑपरेटरों के लिए अपने प्रश्नों की जांच करें, साथ ही बड़े दस्तावेज़ों के अपडेट, और विशेष रूप से बड़े सरणी (या बड़े उप-दस्तावेज़ सरणी) वाले दस्तावेज़ों के अपडेट की जांच करें।
- यदि आपका डेटाबेस लिखने में भारी है, तो ध्यान रखें कि एक समय में प्रति डेटाबेस केवल एक सीपीयू ही लिख सकता है (उस थ्रेड के कारण राइट लॉक पकड़े हुए)। उस डेटा के हिस्से को उसके अपने डेटाबेस में ले जाने पर विचार करें।
यह कुछ चीजें हैं जो समय के साथ प्रदर्शन को कम करती हैं। मैंने यहां सबसे आम उपयोग के मामलों को कवर किया है, हालांकि कृपया इस पोस्ट की जांच करें कुछ और अंतर्दृष्टि के लिए।