Nasıl/küçültme tasfiye ibdata1 MySQL için dosya
Ben kullanarak MySQL localhost olarak bir "sorgu aracı" için performans istatistikleri, R, O, her zaman benim bir R ben bir komut dosyası oluşturmak yeni bir veritabanı (A), yeni bir tablo oluşturun (B), ithalat verileri içine B, gönder bir sorgu için ne ihtiyacım var, ve sonra ben damla damla A. B ve
Benim için iyi çalışıyor, ama ibdata dosya boyutu hızla artıyor, MySQL hiçbir şey saklı, ama ibdata1 dosyasını zaten 100 MB aştığını fark ettim.
Kurulum için daha fazla veya daha az MySQL varsayılan ayarı kullanıyorum, otomatik/Temizle küçültmek için bir yol var bu ibdata1 belirli bir süre sonra dosya?
CEVAP
ibdata1
küçülmüyor MySQL özellikle rahatsız edici bir özelliktir. ibdata1
dosya cant aslında tüm veritabanlarını sil sürece daralmış, dosyaları kaldırmak ve dökümü yeniden.
Ama her tablo, alt dizinleri de dahil olmak üzere, ayrı bir dosya olarak saklanır, böylece MySQL yapılandırabilirsiniz. Bu şekilde ibdata1
büyük büyümek değil. Bill Karwin's comment göre bu sürümü varsayılan olarak MySQL 5.6 etkindir.
Bunu yaptım bir süre önce. Ancak, sunucunuzun her tablo için ayrı dosya kullanmak için kurulum için bu etkinleştirmek için my.cnf
deÄŸiÅŸtirmek gerekir:
[mysqld]
innodb_file_per_table
http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
ibdata1
alanı açmak istediğiniz dosyayı gerçekten silmek için:
- Bütün veritabanları
mysqldump
, prosedürler, vb tetiklermysql
performance_schema
veritabanları hariç - Bırak tüm veritabanlarıyukarıda 2 veritabanları hariç
- Mysql durdurmak
ibdata1
ib_log
Dosyaları Sil- Mysql başlayın
- Çöpten geri
5 adımda MySQL başlattığınızda ibdata1
ib_log
dosyaları yeniden oluşturulur.
Şimdi gitmek için hazırsın. Analiz için yeni bir veritabanı oluşturduğunuzda, tablolar ibd*
ayrı dosyalar, ibdata1
içinde yer alacak. Genellikle erken veritabanı sonra drop olarak, ibd*
dosyalar silinir.
http://dev.mysql.com/doc/refman/5.1/en/drop-database.html
Muhtemelen bu gördük:
http://bugs.mysql.com/bug.php?id=1341
Komutunu kullanarak ALTER TABLE <tablename> ENGINE=innodb
OPTIMIZE TABLE <tablename>
tek ayrı dosyalar için ibdata1 veri ve dizin sayfaları ayıklamak. Ancak, ibdata1 yukarıdaki adımları yapmazsanız geri kalmazlar.
Nasıl bir proje içinde tek bir dosya i...
Nasıl MySQL kullanıcı hesaplarının bir...
Nasıl ve bash ile bir dosya için hem s...
Nasıl çıkış için MySQL csv biçiminde s...
Nasıl MySQL bir Datetime sütun için va...