Web Artisan Blog - ウェブ アルチザン ブログ

MySQL:テーブルの圧縮:myisampack

SQL (37 items)

2006年07月23日

Research Artisan Pro ←リサーチアルチザンがパワーアップして復活しました!!
テーブルの容量が増えてきた。圧縮できないものか。。。

MySQLでは、myisampackコマンドでテーブルを圧縮する事ができます。(圧縮後は読み取り専用テーブルになりますが)


方法ですが、MySQLもドキュメントが充実していますし、
>4.8.4. myisampack(MySQL 圧縮読み取り専用テーブルジェネレータ)

以下のサイトの記事も参考になります。
>MySQL の MERGE テーブルで巨大なテーブルを効率的に運用する
>[MySQL]myisampackによる圧縮


まずは、mysqlのデータディレクトリに移動し、以下のコマンド実行。(いずれも必須)

・圧縮
myisampack -v テーブル名


・インデックスの再生成
myisamchk -rq --analyze --sort-index テーブル名.MYI


・FLUSH TABLE
mysqladmin flush-tables
もしくは、mysqlにログインし、
FLUSH TABLES
か、
FLUSH TABLE 圧縮したテーブル名


圧縮後、データファイルを見ると、60%程度が圧縮されていました。
(ちなみに、PHPでシェル作って大量テーブルの圧縮を行いましたが、全て圧縮後、mysqlの再起動でディスク使用率の減少を確認できました)


特に過去のログデータなんかを持っている場合、この圧縮は必要になってくるでしょうね。

前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=591