प्रदर्शन शुरू होने से पहले एक MySQL डेटाबेस कितना बड़ा हो सकता है

एक MySQL डेटाबेस किस बिंदु पर प्रदर्शन खोना शुरू करता है?

  • क्या भौतिक डेटाबेस आकार मायने रखता है?
  • रिकॉर्ड्स की संख्या महत्वपूर्ण है?
  • क्या कोई प्रदर्शन गिरावट रैखिक या घातीय है?

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

0
जोड़ा संपादित
विचारों: 2

13 उत्तर

भौतिक डेटाबेस आकार कोई फर्क नहीं पड़ता। रिकॉर्ड की संख्या कोई फर्क नहीं पड़ता।

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

मेरे पास केवल 10 जीबी तक पहुंच गया है, केवल कनेक्शन की एक मामूली संख्या के साथ और यह अनुरोधों को ठीक से संभाला गया।

मैं पहले आपके इंडेक्स पर ध्यान केंद्रित करता हूं, फिर एक सर्वर व्यवस्थापक आपके ओएस को देखता है, और यदि यह मदद नहीं करता है तो यह मास्टर / गुलाम कॉन्फ़िगरेशन को लागू करने का समय हो सकता है।

0
जोड़ा
इसके बारे में क्या है यदि डेटाबेस आकार 7 जीबी से अधिक है। उस तथ्य में समय सीमा प्रभावित नहीं होती है?
जोड़ा लेखक Hacker, स्रोत

जटिल जुड़ने के लिए भी देखें। लेनदेन की मात्रा के अलावा लेनदेन जटिलता एक बड़ा कारक हो सकता है।

भारी प्रश्नों को दोबारा रिफैक्टर करना कभी-कभी एक बड़ा प्रदर्शन बढ़ावा देता है।

0
जोड़ा

"डेटाबेस प्रदर्शन" के बारे में बात करना व्यर्थ है, "क्वेरी प्रदर्शन" यहां एक बेहतर शब्द है। और जवाब यह है: यह क्वेरी, डेटा, जो इंडेक्स, हार्डवेयर इत्यादि पर चल रहा है, पर निर्भर करता है। आप यह जान सकते हैं कि कितनी पंक्तियां स्कैन की जा रही हैं और EXPLAIN वाक्यविन्यास के साथ किन इंडेक्स का उपयोग किया जा रहा है।

2 जीबी वास्तव में "बड़े" डेटाबेस के रूप में नहीं गिना जाता है - यह एक मध्यम आकार का अधिक है।

0
जोड़ा

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

यह सच है। एक और चीज जो आम तौर पर काम करती है वह है कि डेटा की मात्रा को कम करें जो बार-बार काम करता है। यदि आपके पास "पुराना डेटा" और "नया डेटा" है और 99% आपके प्रश्न नए डेटा के साथ काम करते हैं, तो बस सभी पुराने डेटा को किसी अन्य तालिका में ले जाएं - और इसे न देखें;)

-> Have a look at partitioning.

0
जोड़ा

आम तौर पर यह एक बहुत ही सूक्ष्म मुद्दा है और जो कुछ भी तुच्छ नहीं है। मैं आपको mysqlperformanceblog.com और उच्च प्रदर्शन MySQL । मुझे सच में लगता है कि इसके लिए कोई सामान्य जवाब नहीं है।

मैं एक प्रोजेक्ट पर काम कर रहा हूं जिसमें लगभग 1TB डेटा वाला MySQL डेटाबेस है। सबसे महत्वपूर्ण स्केलेबिलिटी कारक रैम है। यदि आपकी टेबल की अनुक्रमणिका मेमोरी में फिट होती है और आपके प्रश्न अत्यधिक अनुकूलित होते हैं, तो आप औसत मशीन के साथ उचित अनुरोधों की पूर्ति कर सकते हैं।

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

डेटाबेस का भौतिक आकार भी मायने रखता है: उदाहरण के लिए बैकअप के बारे में सोचें। आपके इंजन के आधार पर, आपकी भौतिक डीबी फाइलें बढ़ने पर, लेकिन संकोच न करें, उदाहरण के लिए innodb के साथ। तो बहुत सारी पंक्तियां हटाना, आपकी भौतिक फाइलों को कम करने में मदद नहीं करता है।

इस मुद्दे के लिए बहुत कुछ है और कई मामलों में शैतान विवरण में है।

0
जोड़ा

डेटाबेस आकार कोई फर्क नहीं पड़ता । यदि आपके पास दस लाख से अधिक रिकॉर्ड वाले एक से अधिक टेबल हैं, तो प्रदर्शन वास्तव में घटाना शुरू हो जाता है। रिकॉर्ड की संख्या निश्चित रूप से प्रदर्शन को प्रभावित करती है: MySQL बड़ी तालिकाओं के साथ धीमा हो सकता है । यदि आप दस लाख रिकॉर्ड हिट करते हैं तो आपको प्रदर्शन समस्याएं मिलेंगी यदि सूचकांक सही नहीं हैं (उदाहरण के लिए "WHERE कथन" या "शर्तों पर" शर्तों में फ़ील्ड के लिए कोई सूचकांक नहीं है)। यदि आप 10 मिलियन रिकॉर्ड हिट करते हैं, तो आपको प्रदर्शन की समस्याएं मिलनी शुरू हो जाएंगी, भले ही आपके सभी इंडेक्स सही हों। हार्डवेयर उन्नयन - अधिक मेमोरी और अधिक प्रोसेसर पावर, विशेष रूप से मेमोरी जोड़ना - कम से कम एक निश्चित डिग्री तक फिर से प्रदर्शन को बढ़ाकर सबसे गंभीर समस्याओं को कम करने में मदद करता है। उदाहरण के लिए 37 सिग्नल 32 जीबी रैम से 128 जीबी रैम तक चला गया बेसकैम्प डेटाबेस सर्वर के लिए।

0
जोड़ा

विचार करने के लिए एक बिंदु प्रणाली और डेटा का दिन भी दिन का उद्देश्य है।

उदाहरण के लिए, कारों की जीपीएस निगरानी वाली प्रणाली के लिए पिछले महीनों में कार की स्थिति से प्रासंगिक क्वेरी डेटा नहीं है।

इसलिए संभावित परामर्श के लिए डेटा को अन्य ऐतिहासिक तालिकाओं में पारित किया जा सकता है और दिन-प्रतिदिन के प्रश्नों के निष्पादन के समय को कम किया जा सकता है।

0
जोड़ा

मुझे एक बार एक मिस्क्ल को देखने के लिए बुलाया गया था जिसने "काम करना बंद कर दिया" था। मैंने पाया कि डीबी फाइलें एनएफएस 2 के साथ घुड़सवार नेटवर्क एप्लायंस फाइलर पर और 2 जीबी के अधिकतम फ़ाइल आकार के साथ रह रही थीं। और निश्चित रूप से पर्याप्त है, जिस तालिका ने लेनदेन स्वीकार करना बंद कर दिया था वह डिस्क पर बिल्कुल 2 जीबी था। लेकिन प्रदर्शन वक्र के संबंध में मुझे बताया गया है कि यह एक चैंप की तरह काम कर रहा था जब तक कि यह बिल्कुल काम नहीं करता! यह अनुभव हमेशा मेरे लिए एक अच्छा अनुस्मारक के रूप में कार्य करता है कि आप हमेशा स्वाभाविक रूप से संदेह के ऊपर और नीचे हमेशा आयाम होते हैं।

0
जोड़ा
जबकि यह सच है कि स्केलिंग का मुद्दा समग्र रूप से सबसे अच्छा देखा जाता है, लेकिन यह पूरी तरह से असंबंधित है कि MySQL स्वयं कैसे स्केल करता है।
जोड़ा लेखक Lie Ryan, स्रोत

2 जीबी और लगभग 15 एम रिकॉर्ड एक बहुत छोटा डेटाबेस है - मैंने पेंटियम III (!) पर बहुत अधिक रन चलाए हैं और सबकुछ अभी भी बहुत तेजी से चल रहा है .. यदि आपका धीमा है तो यह डेटाबेस / एप्लिकेशन डिज़ाइन समस्या है, एक MySQL नहीं एक।

0
जोड़ा

यदि डेटाबेस ठीक से डिज़ाइन नहीं किया गया है तो प्रदर्शन कुछ हज़ार पंक्तियों के मामले में गिरावट कर सकता है।

यदि आपके पास उचित इंडेक्स हैं, तो उचित इंजन का उपयोग करें (माईसाम का उपयोग न करें जहां एकाधिक डीएमएल अपेक्षित हैं), विभाजन का उपयोग करें, उपयोग के आधार पर सही मेमोरी आवंटित करें और निश्चित रूप से अच्छी सर्वर कॉन्फ़िगरेशन है, MySQL टेराबाइट्स में भी डेटा को संभाल सकता है!

डेटाबेस प्रदर्शन में सुधार करने के हमेशा तरीके हैं।

0
जोड़ा

It depends on your query and validation.

उदाहरण के लिए, मैंने 100 000 दवाओं की एक तालिका के साथ काम किया जिसमें कॉलम जेनेरिक नाम है जहां उस तालिका में प्रत्येक दवा के लिए 15 से अधिक वर्ण हैं। मैंने दो तालिकाओं के बीच दवाओं के सामान्य नाम की तुलना करने के लिए एक प्रश्न रखा है। क्वेरी लेती है चलाने के लिए और अधिक मिनट। वही, यदि आप एक आईडी कॉलम (ऊपर बताए गए अनुसार) का उपयोग करके दवा इंडेक्स का उपयोग करके दवाओं की तुलना करते हैं, तो इसमें केवल कुछ सेकंड लगते हैं।

0
जोड़ा

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

0
जोड़ा

मैं वर्तमान में अमेज़ॅन के क्लाउड इंफ्रास्ट्रक्चर पर एक MySQL डेटाबेस प्रबंधित कर रहा हूं जो 160 जीबी तक बढ़ गया है। क्वेरी प्रदर्शन ठीक है। क्या एक दुःस्वप्न बन गया है बैकअप, पुनर्स्थापना, दास जोड़ना, या किसी भी अन्य जो पूरे डेटासेट से संबंधित है, या यहां तक ​​कि बड़ी टेबल पर डीडीएल भी है। डंप फ़ाइल का एक साफ आयात प्राप्त करना समस्याग्रस्त हो गया है। प्रक्रिया को स्वचालित करने के लिए पर्याप्त स्थिर बनाने के लिए, प्रदर्शन पर स्थिरता को प्राथमिकता देने के लिए विभिन्न विकल्पों की आवश्यकता होती है। अगर हमें किसी SQL बैकअप का उपयोग करके किसी आपदा से पुनर्प्राप्त करना पड़ा, तो हम दिन के लिए नीचे आ जाएंगे।

क्षैतिज रूप से स्केलिंग एसक्यूएल भी बहुत दर्दनाक है, और ज्यादातर मामलों में इसका उपयोग उन तरीकों से करने की ओर जाता है जब आप संभवत: एसक्यूएल में अपना डेटा डालने का विकल्प नहीं लेते थे। शर्ड्स, दास, मल्टी-मास्टर, एट अल, वे सभी वास्तव में शर्टी समाधान हैं जो डीबी के साथ जो कुछ भी करते हैं, उसमें जटिलता जोड़ते हैं, और उनमें से कोई भी समस्या हल नहीं करता है; केवल कुछ तरीकों से इसे कम करता है। मैं दृढ़ता से सुझाव देता हूं कि आप अपने कुछ डेटा को MySQL (या वास्तव में किसी भी एसक्यूएल) से बाहर ले जाना चाहते हैं, जब आप किसी आकार के डेटासेट पर पहुंचना शुरू करते हैं जहां इन प्रकार की चीजें एक समस्या बन जाती हैं।

0
जोड़ा