5

ऐप्लिकेशन इंजन ब्लॉग से:ऐपेंगीन कुशलतापूर्वक सूची में क्वेरी को कार्यान्वित कैसे करता है?

उन्नत क्वेरी योजना - हम अनुक्रमित विस्फोट और कई प्रश्नों के लिए कस्टम सूचकांक आवश्यकताओं को कम करने के लिए की जरूरत निकाल रहे हैं। एसडीके कई मामलों में बेहतर सूचकांक का सुझाव देगा और एक आगामी लेख वर्णन करेगा कि आगे के अनुकूलन क्या संभव हैं।

एक परीक्षण के रूप में, मैं appengine एक listProperty

class Entity(db.Model): 
    tags = db.StringListProperty() 

मैं 500,000 इकाइयां है कि में एक इकाई है, उनमें से आधे टैग नहीं है = [ '1'], और दूसरे आधे है टैग = [ '2']

मेरी क्वेरी

SELECT FROM Entity WHERE tags='1' and tags='2' 

यह वास्तव में जल्दी से कोई परिणाम है। इसे प्राप्त करने के लिए इसका उपयोग किस योजना का उपयोग कर रहा है? यह सूची प्राप्त करने के लिए अनुक्रमित सूची कैसे है? पुराने दिनों में, एक विस्फोटक सूचकांक की आवश्यकता होगी।

+0

आईआईआरसी यह तकनीकी वार्ता में से एक में शामिल था - इसे कभी भी एक विस्फोटक सूचकांक की आवश्यकता नहीं थी, केवल एक स्ट्रिंगलिस्टप्रॉपर्टी – bdonlan

+1

कोई भी उन्नत क्वेरी प्लानिंग परिवर्तन इस क्वेरी को प्रभावित नहीं करेगा। आपने संस्थाओं को कैसे सम्मिलित किया? यदि टैग = 2 वाले सभी के पास टैग = 1 (या इसके विपरीत) वाले लोगों की तुलना में अधिक आईडी हैं, तो यह क्वेरी संतुष्ट करने के लिए तुच्छ है। –

+0

मुझे लगता है कि क्वेरी का मतलब था: एंटीटी से चुनें जहां टैग = '1' और टैग = '2' तिथि तक ऑर्डर करें – Jaap

उत्तर

2

Google I/O 200 तकनीकी चर्चा Building Scalable, Complex Apps on App Engine में आंतरिक रूप से उपयोग किए जाने वाले एल्गोरिदम का वर्णन किया गया था ('मर्ज-जॉइन')। यह कार्यक्षमता GAE के लॉन्च के बाद भी उपलब्ध है; 'विस्फोटक अनुक्रमणिका' केवल तभी होता है जब आप एकाधिक स्ट्रिंगलिस्टप्रॉपर्टीज का कंपाउंड इंडेक्स बनाते हैं।

यह ध्यान देने योग्य है कि यह कार्यक्षमता वास्तव में थोड़ा सा सामान्य है जो आप महसूस कर सकते हैं - गुणों के किसी भी मनमानी संयोजन पर एकाधिक समानता फ़िल्टर का कोई संयोजन किसी भी यौगिक सूचकांक के बिना संतुष्ट हो सकता है, बशर्ते वे सभी समानता फ़िल्टर हों और आप एक क्रम क्रम नहीं है। उन्हें सभी को स्ट्रिंगलिस्टप्रॉपर्टी से नहीं होना चाहिए, और इसे कई स्ट्रिंगलिस्टप्रॉपर्टी में भी विभाजित किया जा सकता है।

संबंधित मुद्दे