たかだか700万行、 mysqldump して 150MB 弱のデータ量しかないテーブルに一つユニークインデックスを貼るだけで7時間半かかってまだ終わらないってどういうことよ。この大きさになるともう ALTER TABLE では無理だってことか・・・。夜中に ALTER TABLE し始めたときと、ついさっきとで、 show full processlist の結果は悲しくも変わらず copy to tmp table のまま。何個かインデックス貼るうちの最初の一個でこれじゃあ。ほっといても永遠に終わらなそうだ。
RENAME TABLE したあと元の名前でインデックスありのテーブルを作り直し、 INSERT INTO new_table SELECT * FROM old_table するのと、 mysqldump して CREATE TABLE にインデックスたして全部ロードしなおすのと、どっちが早いんだろう。まぁ後者だろうな。やれやれまたやり直しだ。