Bu ibdata1
daralma değil, MySQL'in özellikle can sıkıcı bir özelliğidir. ibdata1
Dosyanın gerçekten, tüm veritabanlarını silmek dosyaları kaldırmak ve bir dökümü yeniden sürece küçüldü yapılamaz.
Ancak MySQL'i, dizinleri de dahil olmak üzere her tablonun ayrı bir dosya olarak saklanacağı şekilde yapılandırabilirsiniz. Bu şekilde ibdata1
büyüyemez. Bill Karwin'in yorumuna göre, bu MySQL'in 5.6.6 sürümünden itibaren varsayılan olarak etkindir.
Bunu bir süre önce yaptım. Ancak, sunucunuzu her tablo için ayrı dosyalar kullanacak şekilde ayarlamak için, my.cnf
aşağıdakileri etkinleştirmek üzere değiştirmeniz gerekir :
[mysqld]
innodb_file_per_table=1
http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
Sizden alanı geri almak istediğinizde ibdata1
, dosyayı silmek zorundasınız:
- Ve veritabanları hariç
mysqldump
tüm veritabanlarını, yordamları, tetikleyicileri vb. Yapın .mysql
performance_schema
- Yukarıdaki 2 veritabanı hariç tüm veritabanlarını bırakın
- MySQL'i durdur
- Sil
ibdata1
ve ib_log
dosyalar
- MySQL'i başlat
- Dökümden geri yükle
5. adımda MySQL'i başlattığınızda ibdata1
ve ib_log
dosyaları yeniden oluşturulur.
Artık hazırsınız. Analiz için yeni bir veritabanı oluşturduğunuzda, tablolar içinde ibd*
değil ayrı dosyalarda bulunur ibdata1
. Genellikle veritabanını kısa süre sonra bıraktığınız için ibd*
dosyalar silinir.
http://dev.mysql.com/doc/refman/5.1/en/drop-database.html
Muhtemelen bunu gördünüz:
http://bugs.mysql.com/bug.php?id=1341
Komut ALTER TABLE <tablename> ENGINE=innodb
veya OPTIMIZE TABLE <tablename>
birini kullanarak verileri ve dizin sayfalarını ibdata1'den ayrı dosyalara ayıklayabilirsiniz. Ancak, yukarıdaki adımları uygulamadığınız sürece ibdata1 küçülmez.
information_schema
Bununla ilgili olarak , düşürmek gerekli ya da mümkün değildir. Aslında sadece bir demet salt okunur görünümler, tablolar değil. Ve onlarla ilişkili hiçbir dosya yok, hatta bir veritabanı dizini bile yok. Bu informations_schema
bellek db-engine kullanıyor ve mysqld durdur / yeniden başlat üzerine düşürülür ve rejenere edilir. Bkz. Https://dev.mysql.com/doc/refman/5.7/en/information-schema.html .