MySQLのインデックス最適化コマンド
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2011-07-07
PostgreSQL の運用には散々悩まされた記憶がありますが、MySQL にも最適化の運用コマンドは用意されています。しかし、PostgreSQL ほど頻繁にメンテナンスする必要もなく、変更が多いテーブルでもそこまでシビアにならなくて良さそうです。
また、インデックスの最適化については InnoDB の場合は自動で行ってくれるので意識する必要はありませんが、最適化が行われる条件は決まっているので、すべてが常に最適化されているわけではありません。
例えば、前回インデックスが更新が行われてから以下のパターンに当てはまった時にインデックスの最適化対象となります。
・テーブル行数全体の 1/16 が更新される
・20億行以上更新される
ちなみに、最適化に使用するコマンドは以下です。
# テーブル最適化(ロックが掛かるので注意) mysql> optimize table [テーブル名]; # インデックスのみ最適化 mysql> analyze table [テーブル名];
MySQL を長期間運用する場合は、覚えておきたいですね。
関連記事
上記の記事に関連する記事(最新の10件)です。


