Google App Engine में, सबसे प्रभावी कई-से-कई सम्मिलित मॉडल क्या है?


9

बिगटेबल डिजाइन, मानक संबंधपरक मॉडल के दर्शन के कई को खारिज कर दिया स्पष्ट रूप से छोटे तालिकाओं का एक बड़ा होस्ट करने असमान्यीकरण पसंद करते हैं।

बड़े क्षेत्रों में से एक जहां यह एक समस्या है, बहुत से लोगों में से कई के मॉडलिंग में है।

इन जुड़ावों को मॉडल करने का एक तरीका पहले सामान्य रूप का उल्लंघन करना है, और सभी दिलचस्प डेटा को db.ListProperty () में डालना है। हालांकि इसमें किसी क्वेरी से खोजे जाने की क्षमता है, मैंने अभी तक सूची खोजने के प्रदर्शन निहितार्थों का पता नहीं लगाया है।

मिलती है के रूप में संभव नहीं हैं, यह है RelationshipProperties के माध्यम से लिंक तालिकाओं के लिए संभव। इसलिए, पर्याप्त प्रयास के साथ, मानक चौराहे की मेज (एक संयुक्त प्राथमिक कुंजी के साथ एक तालिका जिसमें दोनों माता-पिता की तालिकाओं का संदर्भ होता है) बनाई जा सकती है। क्या किसी ने विभिन्न कार्यान्वयन के प्रदर्शन हिट का पता लगाया है?

-Edit-

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

जवाबों:


3

मैं अभी जीएई डेटास्टोर के साथ भी काम कर रहा हूं, आपको इस लेख की जांच करनी चाहिए यदि आपने पहले से ही नहीं किया है। यदि आपको कुछ उपयोगी लगा है, तो कृपया अपना प्रश्न अपडेट करें।

संपादित करें:

मुझे यह आज मिला , इसे देखें।


0

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

ए या बी (या यदि आवश्यक हो तो दोनों) में कुंजी की सूची रखना बहुत तेज़ होगा क्योंकि जब आप उस रिकॉर्ड / इकाई को प्राप्त करेंगे, तो उन्हें शामिल किया जाएगा। जब तक आपके पास सूची में बहुत अधिक चाबियाँ नहीं हैं (यानी, इकाई बहुत बड़ी नहीं है), यह जाने का तरीका है।

मैंने अपने अनुप्रयोगों पर ndb का उपयोग करना शुरू कर दिया है और संस्थाओं का उपयोग करते समय चाबियों का उपयोग करने के लिए कुछ महत्वपूर्ण लाभ हैं। यदि इकाई पहले से ही कैश की गई है, तो यह पहले मेमोरी या मेम्चे से खींच लेगा। इसलिए यदि आपकी सूचियों की सूची में महत्वपूर्ण ओवरलैप है, तो उन संस्थाओं के लिए पहले से प्राप्त किए गए भ्रूण बहुत तेजी से होंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.