myisampack

提供: Wikiducca
2019年1月1日 (火) 13:23時点におけるRxy (ノート | 投稿記録)による版

移動: 案内検索

Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。圧縮された読み取り専用MyISAM テーブルを作成するコマンド。<br /> 通常、myisampack は 40%-70% データファイルを圧縮できる。 == テスト対象 == * 対象DB pack_test * 対象テーブル txt_tbl == 実行前サイズ(単位:byte) == <pre> [root@server ~]# cd /var/lib/mysql/data/pack_test [root@server pack_test]# ls -la 合計 40 drwx------ 2 mysql mysql 4096 9月 15 18:33 . drwx------ 6 mysql mysql 4096 9月 15 18:35 .. -rw-rw---- 1 mysql mysql 61 9月 15 17:44 db.opt -rw-rw---- 1 mysql mysql 10800 9月 15 18:34 txt_tbl.MYD -rw-rw---- 1 mysql mysql 2048 9月 15 18:34 txt_tbl.MYI -rw-rw---- 1 mysql mysql 8586 9月 15 18:31 txt_tbl.frm [root@server pack_test]# </pre> == 実行 == === myisampack === <pre> [root@server pack_test]# myisampack -v txt_tbl Compressing txt_tbl.MYD: (100 records) - Calculating statistics normal: 1 empty-space: 0 empty-zero: 0 empty-fill: 0 pre-space: 0 end-space: 0 intervall-fields: 0 zero: 0 Original trees: 2 After join: 2 - Compressing file Min record length: 15 Max length: 15 Mean total length: 19 82.01% Remember to run myisamchk -rq on compressed tables User time 0.00, System time 0.00 Maximum resident set size 0, Integral resident set size 0 Non-physical pagefaults 314, Physical pagefaults 0, Swaps 0 Blocks in 0 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 2, Involuntary context switches 12 [root@server pack_test]# </pre> === myisamchk === インデックスを再生成する。 <pre> [root@server pack_test]# myisamchk -rq --sort-index --analyze txt_tbl.MYI - check record delete-chain - recovering (with sort) MyISAM-table 'txt_tbl.MYI' Data records: 100 - Fixing index 1 - Sorting index for MyISAM-table 'txt_tbl.MYI' [root@server pack_test]# </pre> === テーブルを FLUSH === MySQL> FLUSH TABLE txt_tbl; == 実行後サイズ(単位:byte) == <pre> [root@server pack_test]# ls -la 合計 32 drwx------ 2 mysql mysql 4096 9月 15 18:50 . drwx------ 6 mysql mysql 4096 9月 15 18:35 .. -rw-rw---- 1 mysql mysql 61 9月 15 17:44 db.opt -rw-rw---- 1 mysql mysql 1950 9月 15 18:34 txt_tbl.MYD -rw-rw---- 1 mysql mysql 2048 9月 15 18:50 txt_tbl.MYI -rw-rw---- 1 mysql mysql 8586 9月 15 18:31 txt_tbl.frm [root@server pack_test]# </pre> == 結果 == '''txt_tbl.MYD が <font color="red">10800 byte</font> から <font color="red">1950 byte</font> まで圧縮された。(<font color="red">82.01%</font>)''' == メモ == * 更新がかかる可能性があるテーブルの場合は更新がかからないようにする * myisampackしたテーブルは参照しかできない(更新、追加が出来ない) * アンパックするにはmyisamchkコマンドに--unpackオプションをつけて実行 == 参考URL == * http://dev.mysql.com/doc/refman/5.1/ja/myisampack.html * http://dev.mysql.com/doc/refman/5.1/ja/myisamchk.html * http://d.hatena.ne.jp/matbluecat/20100408/1270701386 [[Category:MySQL]] [[Category:Linuxコマンド]]