このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
最近の更新
InnoDB のデータファイルは,MyISAM テーブルと異なって,デフォルトでは ibdata1 というファイルにデータが蓄積されていくとこになります。
この ibdata1 は,大量のデータを追加していくと,自動的にサイズを拡張していきます。
ただし,データが削除されても自動的には縮小されません。
MySQLのクエリ処理した際とかにどんどんたまっていくようです。
INSERTやUPDATE、DELETE等ですね!
# mysqldump -u root -p --no-autocommit --all-databases > all_backup.sql
# /etc/init.d/mysql stop
# vi /etc/my.cnf [mysqld] default-storage-engine=InnoDB innodb_file_per_table skip-innodb-doublewrite # リストアが早くなる
InnoDBは、耐障害性を高めるためにInnoDBデータファイル内で2箇所への書き込みを行なうという実装になっています。
すなわち「SHOW VARIABLES LIKE 'innodb_doublewrite'」で、innodb_doublewriteがONになっています。
ただ、実際にはInnoDBログファイルやバイナリログから復旧可能なため、必ずしも設定が必要なわけではありません。
そこで二重書き込みをやめるために、初期設定ふぁいるに「skip-innodb-doublewrite」を加えることで、innodb_doublewriteの値をOFFにできます。
これで、データファイルへの書き込み量を削減できます。これはMySQL5.0以降の機能です。
# rm -rf /var/lib/mysql/ib*
# /etc/init.d/mysql start
# mysql < all_backup.sql
これで、tablename.idb ができるようになります。