"बड़े डेटाबेस" वास्तव में एक नेबुलेस अवधारणा है। इस सवाल के जवाब में पहले से ही बहुत अलग जवाब और राय पोस्ट की गई हैं। "छोटे", "मध्यम" और "बड़े" डेटाबेस को परिभाषित करने के लिए कुछ दृष्टिकोण दूसरों के मुकाबले अधिक समझ में आ सकते हैं, कुछ बिंदु पर, मुझे लगता है कि प्रत्येक परिभाषा सही, सच्ची और मान्य है।
कुछ परिभाषाएं दूसरों की तुलना में अधिक समझ में आती हैं क्योंकि वे एक डेटाबेस के डिजाइन, प्रोग्रामिंग, उपयोग, रखरखाव और प्रशासन के लिए महत्व के विभिन्न पहलुओं पर ध्यान केंद्रित करते हैं और ये अलग-अलग पहलू हैं जो वास्तव में एक उपयोगी डेटाबेस के लिए मायने रखते हैं। यह सिर्फ ऐसा होता है कि ये सभी पहलू "डेटाबेस आकार" की नेबुलेस अवधारणा से प्रभावित होते हैं।
तो, क्या इसका मतलब यह है कि इससे कोई फर्क नहीं पड़ता कि क्या आप यह परिभाषित करने में सक्षम हैं कि कोई विशेष डेटाबेस बड़ा है या नहीं?
हरगिज नहीं। इसका मतलब यह है कि आप अपने डेटाबेस के विभिन्न डिजाइन / परिचालन / प्रशासनिक पहलुओं का मूल्यांकन करते समय अवधारणा को अलग तरीके से लागू करेंगे। इसका मतलब यह भी है कि हर बार यह अवधारणा अस्पष्ट होगी।
एक उदाहरण के रूप में: डेटाबेस इंडेक्स रणनीति (डेटाबेस डिज़ाइन का एक पहलू) प्रत्येक तालिका के लिए रिकॉर्ड संख्या ("आकार" का एक माप) से प्रभावित होती है, रिकॉर्ड आकार समय रिकॉर्ड गणना ("आकार" का एक और उपाय), और क्वेरी बनाम द्वारा। । निर्माण / अद्यतन / हटाएं संचालन अनुपात (डेटाबेस उपयोग का एक पहलू)।
यदि बड़ी संख्या में रिकॉर्ड वाली तालिकाओं के लिए अनुक्रमणिका का उपयोग किया जाता है, तो क्वेरी प्रतिक्रिया समय बेहतर होता है। आपके WHERE, ORDER BY और रिकॉर्ड-एकत्रीकरण खंड की प्रकृति के आधार पर आपको कुछ तालिकाओं के लिए कई अनुक्रमित की आवश्यकता हो सकती है।
प्रभावित तालिका (ओं) पर अनुक्रमणिकाओं की संख्या में वृद्धि के साथ निर्माण, अपडेट और डिलीट संचालन नकारात्मक रूप से प्रभावित होते हैं। किसी प्रभावित तालिका के लिए अधिक अनुक्रमित का मतलब है कि उन परिवर्तनों को लागू करने के लिए RDBMS को अधिक समय और अधिक संसाधनों का खर्च करना चाहिए।
इसके अलावा, यदि आपका RDBMS उन परिवर्तनों को लागू करने के लिए अधिक समय व्यतीत करता है, तो ताले को अधिक समय तक बनाए रखा जाता है, साथ ही साथ सिस्टम में भेजे जा रहे अन्य प्रश्नों के प्रतिक्रिया समय को प्रभावित करता है।
तो, आप अपने अनुक्रमित की मात्रा और डिजाइन को कैसे संतुलित करते हैं? आपको कैसे पता चलेगा कि आपको एक अतिरिक्त सूचकांक की आवश्यकता है और यदि उस सूचकांक को जोड़ने से आप क्वेरी प्रतिक्रिया समय पर एक बड़ा नकारात्मक प्रभाव नहीं डालेंगे? उत्तर: आप अपने डेटाबेस को अपने लोड / प्रदर्शन की आवश्यकताओं के अनुसार लक्ष्य लोड के खिलाफ परीक्षण करते हैं और प्रोफाइलिंग करते हैं और यह पता लगाने के लिए प्रोफाइलिंग डेटा का विश्लेषण करते हैं कि क्या आगे अनुकूलन / रीडिज़ाइन / इंडेक्स की आवश्यकता है।
अलग-अलग प्रश्न बनाम अलग-अलग सूचकांक रणनीतियों की आवश्यकता होती है निर्माण / अद्यतन / हटाएँ कार्रवाई अनुपात। यदि आपका डेटाबेस प्रश्नों के भारी बोझ के नीचे है, लेकिन शायद ही कभी अद्यतन किया जाता है, तो समग्र अनुप्रयोग के लिए प्रदर्शन बेहतर होगा यदि आप प्रत्येक सूचकांक को जोड़ते हैं जो क्वेरी प्रतिक्रिया समय में सुधार करता है। दूसरी ओर, यदि आपका डेटाबेस लगातार अपडेट हो रहा है, लेकिन बड़े क्वेरी ऑपरेशन नहीं हैं, तो कम इंडेक्स का उपयोग करने पर प्रदर्शन बेहतर होगा।
पाठ्यक्रम के अन्य पहलू हैं: डेटाबेस स्कीमा डिज़ाइन, स्टोरेज रणनीति, नेटवर्क डिज़ाइन, बैकअप रणनीति, संग्रहीत कार्यविधियाँ / ट्रिगर / आदि। प्रोग्रामिंग, एप्लिकेशन प्रोग्रामिंग (डेटाबेस के खिलाफ), आदि। ये सभी पहलू "आकार" (रिकॉर्ड आकार, रिकॉर्ड गणना, सूचकांक आकार, सूचकांक गणना, स्कीमा डिजाइन, भंडारण आकार, आदि) की अलग-अलग अवधारणाओं द्वारा अलग-अलग रूप से प्रभावित होते हैं।
मुझे और समय चाहिए क्योंकि यह विषय आकर्षक है। मुझे उम्मीद है कि यह छोटा सा योगदान SQL की इस आकर्षक दुनिया में आपके लिए एक शुरुआती बिंदु के रूप में कार्य करेगा।