performance यवस एक डेटाबेस या कई?




हिंदी में डेटाबेस डिजाइन की प्रक्रिया (9)

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

आईएमएचओ, एक ही डेटाबेस में कई ग्राहकों के लिए डेटा रखने के लिए बस मुझे एक बुरा विचार की तरह लगता है आपको हमेशा क्लाइंट आईडी से अपने प्रश्नों को फ़िल्टर करना याद रखना होगा।

मैं एक वेबसाइट विकसित कर रहा हूं जो कई संस्थाओं के लिए डेटा का प्रबंधन करेगा। संस्थाओं के बीच कोई डेटा साझा नहीं किया जाता है, लेकिन वे एक ही ग्राहक के स्वामित्व में हो सकते हैं। एक ग्राहक एक ही "डैशबोर्ड" से अपनी सारी संस्थाओं को प्रबंधित करना चाह सकता है तो क्या मैं सब कुछ के लिए एक डाटाबेस होना चाहिए, या अलग-अलग डाटा में अलग-अलग डेटा रखना चाहिए? क्या कोई सर्वोत्तम अभ्यास है? होने के लिए सकारात्मक / नकारात्मक क्या हैं:

  • संपूर्ण साइट के लिए डेटाबेस (इकाई का "ग्राहकआईडी" है, डेटा में "इकाईआईडी" है)
  • प्रत्येक ग्राहक के लिए डेटाबेस (डेटा "एंटआईआईडी" है)
  • प्रत्येक इकाई के लिए डेटाबेस (ग्राहक को डाटाबेस का संबंध डेटाबेस के बाहर है)

कई डेटाबेस ऐसा लगता है कि इसमें बेहतर प्रदर्शन (कम पंक्तियां और शामिल हों) हो लेकिन अंततः एक रखरखाव दुःस्वप्न बन सकता है


उन्हें अलग-अलग डाटाबेस में रखने के लिए एक अच्छा तर्क यह है कि इसकी आसानी से पैमाने पर (आप सर्वर के कई प्रतिष्ठानों के साथ सर्वर पर वितरित क्लाइंट डेटाबेस के साथ) आसानी से कर सकते हैं।

एक अन्य तर्क यह है कि एक बार जब आप लॉग इन हो जाते हैं, तो आपको अपने प्रत्येक प्रश्नों में एक अतिरिक्त ऐप जोड़ने की आवश्यकता नहीं है (क्लाइंट आईडी के लिए)

इसलिए, प्रत्येक ग्राहक के लिए कई डीबी द्वारा समर्थित एक मास्टर डीबी एक बेहतर दृष्टिकोण हो सकता है,


यह बहु-किरायेदार एसएएएस अनुप्रयोगों में काफी सामान्य परिदृश्य है। दोनों दृष्टिकोण अपने पेशेवरों और विपक्ष हैं बहु-किरायेदार एसएएएस (एक सेवा के रूप में सॉफ़्टवेयर) के लिए सर्वोत्तम प्रथाओं पर खोज करें और आपको कई सामान मिलेंगे,


एकल डेटाबेस विकल्प रखरखाव बहुत आसान बना देगा।


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


क्या आप अपने कोड को कई वातावरणों में तैनात करने की योजना बना रहे हैं?

यदि हां, तो उसे एक डेटाबेस में रखने का प्रयास करें और सभी तालिका संदर्भों को कॉन्फ़िगरेशन फ़ाइल से एक नेमस्पेस के साथ प्रीफ़िक्स्ड करें।


इस लेख को Microsoft की साइट पर देखें मुझे लगता है कि मल्टी-टेनेंट डिज़ाइन से संबंधित विभिन्न लागतों और लाभों को बिछाने का अच्छा काम करता है I विकिपीडिया पर मल्टी टेनिन्सी लेख को भी देखें कई व्यापारिक नापसंद होते हैं और आपका सर्वश्रेष्ठ मैच बहुत ही निर्भर करता है कि आप किस प्रकार के उत्पाद विकसित कर रहे हैं।


यह आपके आरडीबीएमएस जैसे उदाहरण पर निर्भर करता है

एसक्यूएल सर्वर डाटाबेस के साथ चीप हैं

ओरेकल के साथ ग्राहक "ग्राहक आईडी" से तालिकाओं के विभाजन के लिए आसान है, इसलिए एक बड़ा डाटाबेस प्रत्येक ग्राहक के लिए छोटा डेटाबेस के रूप में तेजी से चला सकता है

हालांकि हर चुने हुए चुड़ैल, इसे अपने डेटा एक्सेस कोड में निम्न स्तर के रूप में छुपाने की कोशिश करें


निजी तौर पर, मैं अलग-अलग डेटाबेस पसंद करता हूं, विशेष रूप से प्रत्येक इकाई के लिए डेटाबेस। मैं निम्नलिखित कारणों से इस दृष्टिकोण को पसंद करता हूं:

  1. प्रश्नों के बारे में छोटे = तेज
  2. प्रश्न सरल होते हैं।
  3. किसी ग्राहक के डेटा को दूसरे में अकस्मात रूप से प्रदर्शित करने का कोई जोखिम नहीं।
  4. एक डाटाबेस एक प्रदर्शन बाधा उत्पन्न कर सकता है क्योंकि यह बड़ी हो जाती है (# संस्थाओं की बढ़ोतरी) आपको 1 इकाई के साथ क्षैतिज स्केलेबिलिटी में एक तरह का निर्माण मिलता है।
  5. ग्राहकों या संस्थाओं को हटाए जाने के बाद आसान डेटा साफ हो जाता है।

सुनिश्चित करें कि स्कीमा को अपग्रेड करने में अधिक समय लगेगा, लेकिन मेरे अनुभव संशोधनों में एक बार आप तैनात करते हैं और तुल्यकालन तुल्यकालित होते हैं।





maintainability