mysql slowlogとmysqldumpslow
[mysqld]
slow_query_log=1
slow_query_log_file=mysql-slow.log
long_query_time=0
*****************************************************
long_query_timeは0だと全て。
0.5などの設定で1秒未満のクエリも抽出できる
*****************************************************
抽出したログに対してmysqldumpslowを実行すると
SQL毎にソートしてます。
mysqldumpslow -s at /path/to/mysql-slow.log
ソート条件のオプションは以下の通り
al: average lock time
ar: average rows sent
at: average query time
c: count
l: lock time
r: rows sent
t: query time
Tが実行回数×実行時間
あとは負荷の大きい順からEXPLAINでチェックしていけばおkかな