2010-04-15 15 views
8

कम नहीं होगी MySQL डेटाबेस के लिए मेरी ibdata1 फ़ाइल समय के साथ लगभग 32GB तक बढ़ी है। हाल ही में मैंने अपने डेटाबेस से लगभग 10 जीबी डेटा हटा दिया (और अच्छी माप के लिए mysql को पुनरारंभ किया), लेकिन फ़ाइल कम नहीं होगी। वहाँ किसी भी तरह से इस फाइलMySQL डेटा फ़ाइल

उत्तर

11

इनो डीबी टेबलस्पेस का फ़ाइल आकार स्वचालित रूप से कभी भी कम नहीं होगा, इससे कोई फर्क नहीं पड़ता कि आप कितना डेटा हटाते हैं।

आप, कर सकता है क्या, हालांकि यह प्रयास का एक बहुत है, कि तुम से सभी डेटा निर्यात करने के लिए की जरूरत है,

innodb_file_per_table 

की स्थापना इस बारे में लंबे समय तक हिस्सा है द्वारा हर तालिका के लिए एक टेबल-स्पेस बनाने के लिए है mysql सर्वर (एक नया सर्वर स्थापित करना आसान होगा) और फिर डेटा को दोबारा आयात करें। एक एकल ibdata1 फ़ाइल के बजाय जो प्रत्येक तालिका के लिए डेटा रखती है, आपको tablename.ibd नामक कई फाइलें मिलेंगी जो केवल एक ही तालिका के लिए डेटा रखती हैं।


बाद में

:

जब आप तो तालिका से डेटा का एक बहुत हटा सकते हैं, आप mysql (

alter table <tablename> engine=myisam; 

जारी करने MyISAM पर स्विच करने से डेटा फ़ाइल को पुन: और दे सकते हैं इस तालिका के लिए InnoDB डेटा फ़ाइल हटा दी गई) और फिर

alter table <tablename> engine=innodb; 

तालिका को फिर से बनाने के लिए।

4

के आकार को कम करने के लिए जब तक आप सेट innodb_file_per_table, ibdata1 सभी InnoDB टेबल रखती प्लस पूर्ववत है।

यह फ़ाइल कभी भी कम नहीं होती है।

इसे छोटा करने के लिए, आप (अपने जोखिम पर) करना चाहिए: सभी डेटाबेस में सभीInnoDB टेबल ड्रॉप

  • बैकअप और
  • फ़ाइल हटाएँ मैन्युअल
  • reinitialize InnoDB भंडारण (mysqld को पुनरारंभ करके) और
  • बैकअप से तालिकाओं को पुनर्स्थापित करें।

आप innodb_file_per_table सेट करते हैं, तो आप अभी भी यह करने के लिए अंतरिक्ष को पुनः प्राप्त करना होगा, लेकिन इस मामले में आप अन्य तालिकाओं को प्रभावित किए बिना, प्रति-तालिका के आधार पर यह करने के लिए सक्षम हो जाएगा।

ध्यान दें कि पूर्ववत ibdata में भी है, यहां तक ​​कि innodb_file_per_table सेट के साथ भी।

1

भागो optimize table your_db.your_table; एसक्यूएल अनुरोध या mysql workbench migration wizard उपयोग करें और यह कम आकार

साथ डेटाबेस प्रतिलिपि बना देगा
संबंधित मुद्दे