एक InnoDB डेटाबेस के साथ रहने से पहले मुझे क्या पता होना चाहिए?


10

एक सर्वर- या DB- एडमिन को किन चीजों को जानना चाहिए और एक InnoDB डेटाबेस उपलब्ध कराने से पहले करना चाहिए।

मैं उन चीजों के बारे में सोच रहा हूं, जिनके लिए सही मान सेट करना innodb_buffer_pool_sizeऔरinnodb_log_file_size

तो क्या सरल चीजें आप कॉन्फ़िगर करने के लिए भूल सकते हैं जो डेटाबेस का उपयोग करके एप्लिकेशन को उस इष्टतम से कम काम करने का कारण होगा?

जवाबों:


14

कुछ कॉन्फ़िगरेशन विकल्प हैं जिन्हें आपको शुरू करने से पहले सोचना चाहिए।

जब तक आप myisam का उपयोग बिल्कुल नहीं कर रहे हैं, तब तक आप लगभग सभी को सुरक्षित रूप से आवंटित कर सकते हैं (अपने OS को आराम से चलाने के लिए पर्याप्त रखें, और आपके लिए पर्याप्त है max_connections) आपकी मेमोरी को innodb_buffer_pool। InnoDB के बारे में अच्छी बात यह है कि लगभग सभी मेमोरी सामान को अपने आप संभालती है, क्वेरी कैश, कुंजी बफ़र्स आदि जैसे अलग-अलग सामान की आवश्यकता नहीं है।

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

innodb_log_file_sizeऔर innodb_log_buffer_sizeसंयुक्त आपकी सबसे बड़ी बूँद वस्तु से दस गुना बड़ा होना चाहिए यदि आपके पास बहुत बड़ा है। यदि आप ऐसा नहीं करते (और आपको [ 1 , 2 ] नहीं करना चाहिए ), तो वास्तव में इसके साथ बहुत परेशान होने की आवश्यकता नहीं है। गणना करने के तरीके के बारे में विस्तृत रिपोर्ट के लिए MySQL प्रदर्शन ब्लॉग देखें ।

और जब आप अपना MySQL कुछ समय के लिए चलाएं, तो MySQLTuner या MySQL ट्यूनिंग प्राइमर के साथ अपनी सेटिंग्स की जाँच करें ।

एक अधिक विस्तृत रिपोर्ट के लिए, कोशिश mysqlreport , और जीने की निगरानी, जांच करने के लिए mytop


Innodb_file_per_table के बारे में याद रखने वाली एक बात यह है कि डिस्क स्थान को पुनर्प्राप्त करने के लिए उपयोग किए जाने वाले तरीके अलग हैं। Ibdata फ़ाइलों के साथ आप अपने तालिकाओं के अंत को हटाकर टेबलस्पेस में स्थान पुनर्प्राप्त कर सकते हैं। अलग-अलग तालिका फ़ाइलों के साथ स्थान को हटाने के द्वारा पुनर्प्राप्त नहीं किया जाता है, किसी को फ़ाइल सिस्टम में स्थान वापस करने के लिए तालिका को ऑप्टिमाइज़ करने के साथ पुनर्निर्माण करना पड़ता है। ऑप्टिमाइज़ करें तालिका को लॉक करता है और इसलिए आपके एप्लिकेशन में डाउनटाइम हो सकता है।
mtinberg

2

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

यदि आप टेबल के आधार पर भौतिक फ़ाइलों को सिकोड़ने के लिए उपयोग किए जाते हैं तो यह महत्वपूर्ण हो सकता है (टेबल xxx को ऑप्टिमाइज़ करें)

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