myisampackでテーブル圧縮

MySQLMyISAMテーブルの圧縮方法

  • myisampackコマンドでテーブルを圧縮
$ myisampack -v 圧縮するテーブル
  • myisamchkコマンドでインデックスを再生性
$ myisamchk -rq --sort-index --analyze 圧縮したテーブル.MYI
  • FLUSH TABLEでテーブルをフラッシュ
FLUSH TABLE 圧縮したテーブル;

圧縮したらテーブルサイズが半分くらいまで縮まる

注意点

  • 更新がかかる可能性があるテーブルの場合は更新がかからないようにする
  • myisampackしたテーブルは参照しかできない(更新、追加が出来ない)
  • アンパックするにはmyisamchkコマンドに--unpackオプションをつけて実行