アプリが遅くなったと感じた時の監視ポイント
1. 以前は早かったのに、遅くなった。
以前は早かったがポイント。
大抵の場合はデータ量の増加が原因。
2. データ量増加によるSlow query
mysqlではquery-long-timeというパラメータがあり、その設定時間以上かかったクエリの場合は
slow queryとして認識され、ログに吐出されます。
そのslow queryログを確認すれば遅いクエリがわかる。
対策は
・クエリのチューニング
・インデックスを貼る
・joinを減らすために非正規化
・アプリケーションレベルでのjoin(join禁止、select columns,... where index = ?を多用させる。)→memcachedとの相性がいい。
4. データの抽出ロジックの確認
特に途中からプロジェクトに参画した場合、ロジックには疑ってかかるべき。
データの抽出過程でソートやデータの連結をしている場合には、これによる影響が考えられる。