2010年 9月 9日 はてなブックマーク -
タグ: #MySQL

ibdata1の最適化

基本的なメンテナンスとしては、

mysql> use DB
mysql> ALTER TABLE tbl_name ENGINE=INNODB;

とすればよいです。

ALTER TABLE 操作を定期的に実行すればインデックス スキャンの速度を上げる事ができます:

ALTER TABLE tbl_name ENGINE=INNODB

それによって MySQL はテーブルを再構成します。

MySQL 5.1 リファレンスマニュアル :: 13.5.14.3 テーブルのデフラグメント化

ただしこの場合もファイルが縮小されるわけではありません。ファイルサイズも小さくしたい場合には、以下の方法を用いる必要があります。

現在、データ ファイルをテーブルスペースから削除する事はできません。テーブル スペースのサイズを小さくするには、この手順を利用してください:
1.全ての InnoDB テーブルをダンプする為に mysqldump を利用してください。
2.サーバを停止してください。
3.全ての存在するテーブルスペース ファイルを削除してください。
4.新しいテーブルスペースを設定してください。
5.サーバを再起動してください。
6.ダンプ ファイルをインポートしてください。

MySQL 5.1 リファレンスマニュアル :: 13.5.7 InnoDB データとログ ファイルの追加と削除

私の環境で、この方法を用いて再構築を行うと、約半分程の容量になりました。

# ls -l
-rw-rw---- 1 mysql mysql 41307602944  4月 27 19:53 ibdata1

MySQLのInnoDBデータファイル「ibdata1」の最適化 « FlatLabs Blog

IbdataXが大容量になる前に行いましょう。


1年前 | | 2010年 9月 9日 | このエントリーを含むはてなブックマーク