2011/11/22

2011-11-22:OPTIMIZE TABLE の威力

mysql のお話。ストレージは innodb。
行数が多い上に、わりと挿入も削除もふだんから頻繁にしているテーブルがあった。
パフォーマンスが悪かったので OPTIMIZE TABLE してみたら、これがやたら威力あってびっくり。

使用前。

mysql> select count(id) from hogehoge;
+-----------+
| count(id) |
+-----------+
|    802776 | 
+-----------+
1 row in set (1 min 41.14 sec)

このテーブルに対して、OPTIMIZE TABLE hogehoge; したところ、

使用後。

mysql> select count(id) from hogehoge;
+-----------+
| count(id) |
+-----------+
|    802776 | 
+-----------+
1 row in set (0.27 sec)

なんとびっくり、101.14秒が0.27秒!
ただ、OPTIMIZE TABLE 自体には13分かかったけど。。。