MyISAMの大きなテーブルをmyisamchkするとエラーになる場合の備忘録

sennaのインデックスファイルを再構築にチャレンジ。

インデックスをつくりなおす

mysql> ALTER TABLE hoge DROP KEY `hoge_key`;
mysql> ALTER TABLE hoge ADD FULLTEXT KEY `hoge_key` USING MECAB, NORMALIZE, SECTIONALIZE, 2048 (`hoge`,`fuga`);

インデックスのCardinalityを再計算したい。

mysql> SHOW INDEX FROM tablename;

下記コマンドを実行

% sudo myisamchk -r /data/dbname/table_name.MYI

で、大きなデータを扱うとこうなった

myisamchk: error: myisam_sort_buffer_size is too small 

こうした

% sudo myisamchk --safe-recover -rq --sort_buffer_size=2024M /data/dbname/table_name.MYI