「myisampack」の版間の差分
提供: Wikiducca
(大松「ブロックされないから荒らしやすいンゴねえ」) |
(いたずら対策) |
||
(同じ利用者による、間の1版が非表示) | |||
行1: | 行1: | ||
− | + | 圧縮された読み取り専用MyISAM テーブルを作成するコマンド。<br /> | |
通常、myisampack は 40%-70% データファイルを圧縮できる。 | 通常、myisampack は 40%-70% データファイルを圧縮できる。 | ||
2019年1月17日 (木) 13:40時点における版
圧縮された読み取り専用MyISAM テーブルを作成するコマンド。
通常、myisampack は 40%-70% データファイルを圧縮できる。
目次
テスト対象
- 対象DB
pack_test
- 対象テーブル
txt_tbl
実行前サイズ(単位:byte)
[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]#
実行
myisampack
[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]#
myisamchk
インデックスを再生成する。
[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]#
テーブルを FLUSH
MySQL> FLUSH TABLE txt_tbl;
実行後サイズ(単位:byte)
[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]#
結果
txt_tbl.MYD が 10800 byte から 1950 byte まで圧縮された。(82.01%)
メモ
- 更新がかかる可能性があるテーブルの場合は更新がかからないようにする
- myisampackしたテーブルは参照しかできない(更新、追加が出来ない)
- アンパックするにはmyisamchkコマンドに--unpackオプションをつけて実行