銀河鉄道~ぽんこつエンジニアのブログ~

思いつきで書いています。

MySQLパフォーマンスチューニング

その1 ボトルネックをみつける。
 Explainにを読んでどこに時間がかかっているか確認する。
 対象SQLのJOINを一つずつ外してみる。
 
その2 インデックスの検討。
 正しいインデックを使っているか。
 複合インデックスを使う。
 余計なインデックスを外す

その3 SQLの改善。
 サブクエリ、相関サブクエリをJOIN句に書き換える。
 LEFT JOINをExists文に書き換える。
 UNIONに書き換える。
 UNIONを外す。

その4 テーブルIOの改善。
 バルクインサートを使う。
 ファイルに書き出してからloadコマンドで取り込む。
 メモリテーブルに変更する。

その5 ロジックの検討。
 ぐるぐる系をどかん系に変更する。
 ワークテーブルを使う。

その6 ハードの改善
 メモリを増やす。
 性能の良いハードディスクに替える。