/ / NDB कैशिंग जब अनुमानित क्वेरी का उपयोग कर रहा है - अजगर, गूगल-ऐप-इंजन, ऐप-इंजन-एनडीबी

प्रोजेक्टेड क्वेरीज़ का उपयोग करते समय एनडीबी कैशिंग - पायथन, google-app-engine, ऐप-इंजन-एनडीबी

अभी तक पूछे गए इस विशिष्ट प्रश्न को नहीं खोज सका। अनुमानित इंजन बनाम पूर्ण इकाई प्रश्नों का उपयोग करते समय ऐप इंजन का NDB कैशिंग कैसे संभालता है?

उदाहरण के लिए, यदि मैं पहले एक अनुमानित क्वेरी करता हूं ..

MyModel.query().get(projected=["name"])

... और फिर आगे एक नियमित क्वेरी करें ...

MyModel.query().get()

...मुझे क्या मिलेगा? पूर्ण इकाई? यदि ऐसा है, तो क्या एनडीबी द्वारा स्वचालित रूप से कैश की गई पहली क्वेरी का कोई हिस्सा था? या एनडीबी भेद को अच्छी तरह से बनाने में सक्षम है, इसलिए अगली बार जब मैं अनुमानित क्वेरी को चलाता हूं तो यह संभावित रूप से कैश से खींचा जाता है?

उत्तर:

उत्तर № 1 के लिए 4

जहाँ तक मुझे पता है, क्वेरी परिणाम केवल इन-कॉन्टेस्ट कैश में कैश किए जाते हैं, लेकिन परिणाम क्वेरी के लिए कैश से प्राप्त नहीं होते हैं।

key.get () कैश से कैश और पुनर्प्राप्त किया जाएगा, लेकिन query.get () जीता "कैश से पुनर्प्राप्त नहीं किया जाएगा।

https://developers.google.com/appengine/docs/python/ndb/cache

डॉक्स से: किसी भी कैश में क्वेरीज़ मान नहीं दिखते हैं। हालाँकि, यदि कैश पॉलिसी ऐसा कहती है, लेकिन (कभी भी मेमकेचे के लिए नहीं) तो क्वेरी परिणाम इन-रेफरेंस कैश पर वापस लिखे जाते हैं।

इस सवाल का जवाब देने के लिए कि आप क्या कर रहे हैं, दोनों प्रश्नों में ऐसा प्रतीत होता है कि परिणाम डेटासोर से प्राप्त किए जाएंगे, कैश से नहीं।


जवाब के लिए 3 № 2

प्रोजेक्शन क्वेरी परिणाम कभी भी कैश नहीं होते हैं। यह सही नहीं होगा यदि कुंजी द्वारा प्राप्त किया गया था कभी एक प्रक्षेपण परिणाम वापस करने के लिए। तो कोई चिंता नहीं।