मेरी ibdata फ़ाइल बहुत बड़ी है, कम से कम यह मुझे बहुत बड़ी लगती है। क्या यह अत्यधिक है या बुरा नहीं है?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
मेरी ibdata फ़ाइल बहुत बड़ी है, कम से कम यह मुझे बहुत बड़ी लगती है। क्या यह अत्यधिक है या बुरा नहीं है?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
जवाबों:
यदि आप show table status
एक मेज पर चलते हैं और Data_free
फ़ील्ड आपकी ibdata1
फ़ाइल के आकार का विशाल हिस्सा बनाती है , तो आपके पास बहुत सारा बर्बाद स्थान हो सकता है। डालने / हटाने का एक बड़ा सौदा यह एक मुद्दा बना देगा। यदि यह मामला है और क्षणिक प्रविष्टि और विलोपन आपके डेटा के थोक बनाते हैं, तो आपके पास प्रति तालिका फ़ाइल के लिए एक अच्छा मामला है।
यह एक स्वचालित "हाँ" नहीं है, हालांकि। InnoDB फ़ाइलों के अंदर आंतरिक विखंडन के बारे में दुनिया में बहुत सी बातें हैं, लेकिन उन्हें फ़ाइल-प्रति-तालिका के रूप में फ़ाइल-सिस्टम में डाल देने से डेटाबेस खंड के बजाय फ़ाइल खंड में आपका विखंडन हो जाता है।
एक फ़ाइल के बजाय एक फाइल सिस्टम के रूप में अपनी InnoDB फ़ाइल के बारे में सोचो। यदि आपके पास बहुत सारी फाइलें हैं, तो आपको एक बड़ी फाइल सिस्टम की आवश्यकता होगी।
अधिकांश भाग के लिए, फाइल सिस्टम डेटा की टेराबाइट्स और फाइलों की अनकही संख्या को संभालने के लिए वास्तव में अच्छी तरह से स्केलिंग करते हैं। कभी-कभी वे खराब अनुक्रमण के साथ समस्याओं में भाग लेते हैं (उदाहरण के लिए, प्रदर्शन प्रभाव से पहले एक निर्देशिका में फ़ाइलों की संख्या तक सीमित), लेकिन अधिकांश भाग के लिए आधुनिक फाइल सिस्टम टेराबाइट रेंज में अच्छी तरह से रॉक कर सकता है।
InnoDB उसी तरह कार्य करता है। आपकी डेटा फ़ाइल का आकार बहुत बड़ा हो सकता है ... और बड़े फ़ाइल सिस्टम की तरह, जो आपके डेटा का बैकअप लेने के साथ समस्याएँ प्रस्तुत कर सकते हैं। हालाँकि, अपने फाइल सिस्टम को कई विभाजनों में विभाजित करने से इस समस्या में मदद नहीं मिलती है, न ही निर्दोष को हेरफेर करने की कोशिश होती है। जबकि आप innodb_file_per_table का उपयोग कर सकते हैं , मैं शायद ही कभी इसकी सलाह देता हूं।
आपके फाइल सिस्टम की तरह, बेहतर जवाब यह है कि आंतरिक रूप से सीमाएं जानें और उसके भीतर काम करें। अनुक्रमित समझें और उन्हें उचित रूप से लागू करें। InnoDB को विभाजित करने की कोशिश में काम मत करो, यह उस के लिए नहीं है।
चूँकि मैं रचनात्मक रूप से अवधारणा को व्यक्त करने के लिए संघर्ष कर रहा हूँ, यहाँ एक त्वरित पढ़ा गया है कि इस शब्द को मैं इससे बेहतर कर सकता हूँ: टेराबाइट्स बड़ा डेटा नहीं है, पेटाबाइट्स है ।
मुझे याद है कि वास्तव में पुरानी MySQL मार्केटिंग स्लाइड जहां ग्राहक कुछ टेराबाइट्स के साथ डेटा वेयरहाउस चला रहा था। बहुत साल पहले। InnoDB या MyISAM, दोनों काम करेंगे। यह रैक MySQL सामान से मानक है।
एक 15GB डेटाबेस पसीना मत करो।
InnoDB free: 7364608 kB
ibdata फाइलें सिकुड़ती नहीं हैं - यदि आपने हाल ही में कुछ टेबलों को गिरा दिया है या बहुत सी पंक्तियों को हटा दिया है - तो आपके कॉन्फिग में इनोडोड मुफ्त फाइल फाइल सिस्टम में वापस नहीं आएगा। मैं आपको सुझाव दूंगा:
इस तरह से आप अंतरिक्ष को पुनः प्राप्त करने में सक्षम होंगे जब भी आप निर्दोष तालिका / डेटाबेस को छोड़ देंगे - संबंधित आईडीबी फाइलें तुरंत हटा दी जाएंगी।