मुझे पता नहीं है कि किसने कहा, लेकिन MongoDB के पास प्रश्नों को कैश करने का एक तरीका है, वास्तव में यह OS के LRU को कैश करने के लिए उपयोग करता है क्योंकि यह स्वयं मेमोरी प्रबंधन नहीं करता है।
जब तक आपका वर्किंग सेट ओएस के बिना एलआरयू में फिट बैठता है या इसे लगातार स्वैप करता है, तो आपको इस क्वेरी को ज्यादातर समय मेमोरी से पढ़ना चाहिए। तो, हाँ, MongoDB कैश कर सकता है लेकिन तकनीकी रूप से ऐसा नहीं है; ओएस करता है।
इस तरह की समस्याओं को हल करने के लिए कैशिंग तंत्र अधिकांश तकनीकों में समान है चाहे वे MongoDB या SQL द्वारा हों। बेशक, यह केवल तभी मायने रखता है जब यह कोई समस्या हो, यदि आप मुझसे पूछें तो आप शायद माइक्रो-ऑप्टिमाइज़िंग कर रहे हैं; जब तक आपको Facebook या Google या Youtube प्रकार का ट्रैफ़िक नहीं मिलता।
कैशिंग विषय एक विशाल विषय पर जाता है जो सर्वर के अंत में जितना संभव हो उतना कम काम करने के लिए HTML और अन्य वेब संसाधनों को कैशिंग करने के लिए पूर्व-एकत्रित MongoDB/Memcache/Redis आदि में कैशिंग क्वेरी से लेकर होता है।
आपका परिदृश्य, जैसा कि मैंने व्यक्तिगत रूप से कहा, ऐसा लगता है जैसे आप व्यर्थ कंप्यूटर शक्ति के बारे में गलत सोच रहे हैं। यहां तक कि अगर आप इस क्वेरी को किसी अन्य संग्रह/तकनीक में कैश करना चाहते हैं, तो आप शायद उस तकनीक से परिणाम प्राप्त करने के लिए उतनी ही मात्रा में शक्ति और संसाधनों का उपयोग करेंगे, अगर आपने परेशान नहीं किया था। हालाँकि यह धारणा आपके लिए सही इंडेक्स, स्कीमा, सेट-अप आदि के साथ आती है।
मेरा सुझाव है कि आप अच्छे स्कीमा डिज़ाइन और अनुक्रमणिका निर्माण पर कुछ लिंक पढ़ें:
- http://docs.mongodb.org/manual/core/indexes/ए>
- https://docs .mongodb.com/manual/core/data-model-operations/#large-number-of-collections
हाँ, मुझे लगता है कि क्वेरी कैशिंग के बारे में चिंता करने की कोशिश करके आप पूर्व-परिपक्व रूप से अनुकूलित कर रहे हैं, खासकर यदि आप बंद नहीं करना चाहते हैं, तो हर बार आपके सर्वर पर 90% लोड क्या होगा; पेज को ही लोड कर रहा है।
मैं आपके स्कीमा और इंडेक्स पर ध्यान केंद्रित करूंगा और फिर अगर आपको वास्तव में इसकी आवश्यकता है तो कैशिंग के बारे में चिंता करें।