बस 'एक बड़ा डेटाबेस' क्या है?


80

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


क्षमा करें, आप विफल रहे, आपको एक गूंगे प्रश्न के लिए +5 नहीं मिलेगा ;-)
तून Krijthe

मैं इसे व्यक्तिपरक के रूप में चिह्नित करने जा रहा हूं, मुझे बताएं कि क्या आप असहमत हैं।
जेम्स मैकमोहन

दिलचस्प सवाल, मैं दूसरे दिन बस इस बारे में सोच रहा था।
जेम्स मैकमोहन

2
हाँ, एसक्यूएल और डेटाबेस डिज़ाइन सीखने से मुझे इसे परिप्रेक्ष्य में लाने में मदद मिली।
रैंडिन

मैंने अपने आप को एक बड़े डेटाबेस में रखा। मुझे @dkretz का जवाब पसंद है जो इसे प्रदर्शन और कोडिंग विचारों के संदर्भ में रखता है।
मिलो लामार

जवाबों:


106

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

  • छोटा: 10 5 या उससे कम रिकॉर्ड।
  • मध्यम: 10 5 से 10 7 रिकॉर्ड।
  • बड़ा: 10 7 से 10 9 रिकॉर्ड।
  • बहुत बड़ा: 10 9 या अधिक संख्या में रिकॉर्ड।

जैसा कि पोस्टर dkretz ने सुझाव दिया है, आप प्रत्येक प्रकार के डेटाबेस के गुणों के बारे में भी सोच सकते हैं। इसे इस तरह वर्गीकृत करते हुए, मैं कहूंगा:

  • छोटा: प्रदर्शन चिंता का विषय नहीं है। आपके प्रश्न बिना किसी विशेष अनुकूलन के ठीक चलते हैं। इंडेक्स जैसी फ्रंट-लाइन एन्हांसमेंट का उपयोग करते समय आप केवल मामूली प्रदर्शन अंतर देखते हैं।

  • मध्यम: आपके डेटाबेस में संभवतः एक या अधिक कर्मचारी हैं जिन्हें इसके रखरखाव और देखभाल के लिए अंशकालिक सौंपा गया है। ये लोग डेटाबेस के स्वास्थ्य पर ध्यान देते हैं; उनकी प्राथमिक प्रशासनिक जिम्मेदारी अस्वीकार्य प्रदर्शन की समस्याओं को रोकने और डाउनटाइम को कम करने के लिए है।

  • लार्ज: संभवत: समर्पित कर्मचारी सदस्य (एस) हैं, जिनका काम डेटाबेस पर काम करना और प्रदर्शन में सुधार करना है, साथ ही यह सुनिश्चित करना है कि एप्लिकेशन परिवर्तन डेटाबेस के जीवनकाल में स्कीमा टूटने का कारण न बनें। डेटाबेस के स्वास्थ्य और स्थिति के बारे में मीट्रिक की बारीकी से निगरानी की जाती है। अनुकूलन को समझने और प्रदर्शन करने के लिए महत्वपूर्ण विशेषज्ञता की आवश्यकता है।

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

ध्यान दें कि ये पूरी तरह से व्यक्तिपरक हैं, और किसी को "बड़े" की पूरी तरह से वैध वैकल्पिक परिभाषा मिल सकती है।


शानदार जवाब, लगभग वही जो मैंने कहा होगा जो विषय और चलती गोलपोस्ट को देखते हुए दिलचस्प है।
पीटर वॉन

बहुत बढ़िया जवाब जॉन। बहुत संक्षिप्त। मैंने उसी को समझाने की कोशिश की, लेकिन एक अलग और अधिक जटिल मार्ग पर चला गया: S
vmarquez

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

वास्तव में, मैं कहूंगा कि आपके दोनों उदाहरणों में से कोई भी बड़ा पात्र हो सकता है। क्या आप यह सुझाव दे रहे हैं कि 50 मिलियन रिकॉर्ड के साथ एकल तालिका से युक्त एक विशाल संपत्ति-कुंजी शब्दकोश वास्तविकता में एक "छोटा डेटाबेस" है?
जॉन फेमिनाला

मैं कहूंगा कि इस कॉन्फिडेंट को छोटा भी मानना ​​जायज है। इसके विपरीत, 10,000 तालिकाओं से मिलकर एक विशाल जटिल स्कीमा संरचना पर विचार करें, लेकिन जिसमें कुल 5 पंक्तियाँ हैं। क्या यह "बड़ा डेटाबेस" है?
जॉन फेमिनाला

27

इसे जांचने का एक तरीका यह है कि आप अपने परीक्षा प्रश्नों को देखें।

एक छोटा डेटाबेस वह है जहां अनुक्रमित कोई मायने नहीं रखते।

एक माध्यम डेटाबेस वह होता है जहाँ आपके पास उचित अनुक्रमणिका नहीं होने पर प्रश्न एक सेकंड से अधिक समय लेते हैं।

एक बड़ा डेटाबेस वह है जहां क्वेरी डिजाइन, इंडेक्स संशोधन और कई परीक्षण चक्रों के संयोजन का उपयोग करके अक्सर प्रश्नों को अनुकूलित करने में घंटों लगते हैं।


@le dorfier: BTW मुझे लगता है कि आप अधिकतम चयन के साथ परमाणु अद्यतन के बारे में सही थे (हालांकि मैं अभी भी इसे इस तरह नहीं करूंगा)
मिच गेहूं

4

बड़े डेटाबेस वे हैं जो आपको रिलेशनल डेटाबेस का उपयोग करने से रोकने के लिए मजबूर करते हैं।

दूसरे शब्दों में, एक सामान्यीकृत, संबंधपरक डेटाबेस जहां दुनिया के सभी सूचकांक बड़े पैमाने पर जॉइन के कारण आपकी प्रतिक्रिया समय की आवश्यकताओं को पूरा करने में आपकी मदद नहीं कर सकते।

यदि आपको कभी किसी और चीज़ के लिए रिलेशनल डेटाबेस को छोड़ना पड़ा है, तो आप या तो एक खराब डेटाबेस डेवलपर हैं, कोई विशेषज्ञ डीबीए नहीं है, या बहुत बड़ा डेटाबेस है।


3

"बड़े डेटाबेस" वास्तव में एक नेबुलेस अवधारणा है। इस सवाल के जवाब में पहले से ही बहुत अलग जवाब और राय पोस्ट की गई हैं। "छोटे", "मध्यम" और "बड़े" डेटाबेस को परिभाषित करने के लिए कुछ दृष्टिकोण दूसरों के मुकाबले अधिक समझ में आ सकते हैं, कुछ बिंदु पर, मुझे लगता है कि प्रत्येक परिभाषा सही, सच्ची और मान्य है।

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

तो, क्या इसका मतलब यह है कि इससे कोई फर्क नहीं पड़ता कि क्या आप यह परिभाषित करने में सक्षम हैं कि कोई विशेष डेटाबेस बड़ा है या नहीं?

हरगिज नहीं। इसका मतलब यह है कि आप अपने डेटाबेस के विभिन्न डिजाइन / परिचालन / प्रशासनिक पहलुओं का मूल्यांकन करते समय अवधारणा को अलग तरीके से लागू करेंगे। इसका मतलब यह भी है कि हर बार यह अवधारणा अस्पष्ट होगी।

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

यदि बड़ी संख्या में रिकॉर्ड वाली तालिकाओं के लिए अनुक्रमणिका का उपयोग किया जाता है, तो क्वेरी प्रतिक्रिया समय बेहतर होता है। आपके WHERE, ORDER BY और रिकॉर्ड-एकत्रीकरण खंड की प्रकृति के आधार पर आपको कुछ तालिकाओं के लिए कई अनुक्रमित की आवश्यकता हो सकती है।

प्रभावित तालिका (ओं) पर अनुक्रमणिकाओं की संख्या में वृद्धि के साथ निर्माण, अपडेट और डिलीट संचालन नकारात्मक रूप से प्रभावित होते हैं। किसी प्रभावित तालिका के लिए अधिक अनुक्रमित का मतलब है कि उन परिवर्तनों को लागू करने के लिए RDBMS को अधिक समय और अधिक संसाधनों का खर्च करना चाहिए।

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

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

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

पाठ्यक्रम के अन्य पहलू हैं: डेटाबेस स्कीमा डिज़ाइन, स्टोरेज रणनीति, नेटवर्क डिज़ाइन, बैकअप रणनीति, संग्रहीत कार्यविधियाँ / ट्रिगर / आदि। प्रोग्रामिंग, एप्लिकेशन प्रोग्रामिंग (डेटाबेस के खिलाफ), आदि। ये सभी पहलू "आकार" (रिकॉर्ड आकार, रिकॉर्ड गणना, सूचकांक आकार, सूचकांक गणना, स्कीमा डिजाइन, भंडारण आकार, आदि) की अलग-अलग अवधारणाओं द्वारा अलग-अलग रूप से प्रभावित होते हैं।

मुझे और समय चाहिए क्योंकि यह विषय आकर्षक है। मुझे उम्मीद है कि यह छोटा सा योगदान SQL की इस आकर्षक दुनिया में आपके लिए एक शुरुआती बिंदु के रूप में कार्य करेगा।


3

आपको इस परिभाषा के लिए हार्डवेयर उन्नति का हिसाब देना होगा:

  1. छोटा डेटाबेस: वर्किंग सेट एक सिंगल कमोडिटी सर्वर के फिजिकल रैम में फिट होता है (अब लगभग 16GB)

  2. मध्यम डेटाबेस: एकल या कई (RAID के माध्यम से) एक मशीन पर कमोडिटी हार्ड ड्राइव (कई टीबी तक) में फिट बैठता है

  3. बड़ा डेटाबेस: फिट होने के लिए (अब कई पीबी तक) कई कमोडिटी सर्वर में डेटा वितरित करने की आवश्यकता है।


2

बहुत बड़े डेटाबेस पर विकिपीडिया लेख के अनुसार

एक बहुत बड़ा डेटाबेस, या VLDB, एक ऐसा डेटाबेस है जिसमें बहुत अधिक संख्या में ट्यूपल्स (डेटाबेस रो) होते हैं, या एक बहुत बड़े भौतिक फाइल सिस्टम स्टोरेज स्पेस पर कब्जा कर लेते हैं। वीएलडीबी की सबसे आम परिभाषा एक डेटाबेस है जो 1 से अधिक टेराबाइट पर कब्जा कर लेता है या इसमें कई बिलियन पंक्तियां होती हैं, हालांकि स्वाभाविक रूप से यह परिभाषा समय के साथ बदलती है।


2

यदि आपके पास एक ऐसा डेटाबेस है जो इतना बड़ा है कि आप विकास या परीक्षण बॉक्स में डालने के लिए इसे "बैक अप" नहीं कर सकते हैं, तो आपके पास "बड़ा डेटाबेस" होने की संभावना है।


0

मुझे लगता है कि विकिपीडिया, या अमेरिकी जनगणना डेटा कुछ 'बड़ा' डेटाबेस है। मेरा व्यक्तिगत पता सूची या टॉडोस एक छोटा डेटाबेस है। एक मध्यम आकार का डेटाबेस बीच में कुछ है।

आप कितने सर्वरों द्वारा आकार की कोशिश कर सकते हैं और परिभाषित कर सकते हैं। एक छोटा डेटाबेस आपके डेस्कटॉप पर चलने वाले एप्लिकेशन का एक घटक है, एक मध्यम आकार का डेटाबेस कहीं न कहीं एक एकल mysql (कुछ भी) सर्वर होगा, और एक बड़े डेटाबेस को किसी तरह के प्रतिकृति / विफलता समर्थन के साथ कई सर्वरों की आवश्यकता होगी।

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