SORU
11 AĞUSTOS 2010, ÇARŞAMBA


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
11 AĞUSTOS 2010, ÇARŞAMBA


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:

  1. Bütün veritabanları mysqldump, prosedürler, vb tetiklermysql performance_schema veritabanları hariç
  2. Bırak tüm veritabanlarıyukarıda 2 veritabanları hariç
  3. Mysql durdurmak
  4. ibdata1 ib_log Dosyaları Sil
  5. Mysql başlayın
  6. Çö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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • ::..ηєѕѕ мιχ..::

    ::..ηєѕѕ

    15 Aralık 2006
  • Rugiagialia

    Rugiagialia

    1 Ocak 2008