2012-06-13 10 views
5

में dbref या एम्बेडेड दस्तावेज़ का उपयोग करना चाहिए, हम एक ऐसे अनुप्रयोग को विकसित कर रहे हैं जो भारी पढ़ा जा सके और संभवतः लाखों दस्तावेज हो। हमें लगभग हर संग्रह में उपयोगकर्ता की जानकारी का संदर्भ लेना होगा। उपयोगकर्ता की जानकारी में कुछ विशेषता होती है जो समय-समय पर बदल सकती है।क्या हमें एक पठन-भारी अनुप्रयोग

क्या हमें डीबीआरईफ़ का उपयोग करना चाहिए या उपयोगकर्ता संग्रह को सभी संग्रहों में एम्बेड करना चाहिए?

भारी पढ़ने वाले ऐप में डीबीआरफ़ प्रदर्शन कितना खराब है?

यदि हम डीबीआरई का उपयोग नहीं करेंगे, तो उपयोगकर्ता जानकारी समय-समय पर बदलती है, तो हम प्रत्येक दस्तावेज़ को कैसे अपडेट कर सकते हैं?

मोंगोद में, क्या इस तरह के उपयोग के मामले में डीबीआरएफ और एम्बेडेड दस्तावेजों के लिए कोई विकल्प है?

उत्तर

6

डीबीआरई पारंपरिक संबंध प्रणाली में विदेशी कुंजी की तरह कुछ भी नहीं है। यह केवल एक सम्मेलन है जो उन निर्दिष्ट दस्तावेजों को स्वत: लोड करने के लिए आसानी से ड्राइवर (जो सक्षम है) को बताता है। इस पर अधिक जानकारी के लिए कृपया DBRef देखें।
प्रयुक्त ड्राइवर के आधार पर आप उन संदर्भों को स्वचालित रूप से लोड कर सकते हैं जब आपको उनकी आवश्यकता होती है (आलसी), तो प्रदर्शन ओवरहेड वास्तव में छोटा होना चाहिए। लेकिन स्टोरेज ओवरहेड किसी अन्य दस्तावेज़ के एक साधारण संदर्भित _id से थोड़ा अधिक है। असल में मैं कहूंगा कि आपको केवल उन डीबीआरएफ का उपयोग करना चाहिए यदि लिंक किया गया दस्तावेज़ वैरिएबल प्रकार का हो। यदि इसकी स्थैतिक _id-संदर्भों और शायद आपकी आलसी लोडर कार्यक्षमता से फंस गई है, तो आप स्वयं को दोहराना नहीं चाहते हैं।
अपने दोहराना (या डेटाबेस शर्तों में डेटा डुप्लिकेशन) को अपने संदर्भ में लागू नहीं करते हैं, जैसा कि मोंगोडीबी अनुशंसा करता है, इसलिए मैं भी link your documents पर हूं। अन्यथा आपके पास उच्च भंडारण उपयोग और कुछ हद तक चलने वाले अपडेट होंगे, केवल एक लॉजिकल इकाई को अपडेट करने के लिए (शारीरिक रूप से डुप्लिकेट किया गया)।

पहले उल्लिखित कस्टम आलसी लोडर के साथ आप कुछ कैशिंग जोड़ सकते हैं ताकि हर लुकअप वास्तविक परिणाम एक mongodb लुकअप में न हो। सबसे अधिक संभावना है कि आपको कैश और डीबी के बीच अपने डेटा स्थिरता का ख्याल रखना होगा।

+0

आपके उत्तर के लिए धन्यवाद। यह वास्तव में सहायक था। – atandon

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