読者です 読者をやめる 読者になる 読者になる

Slow Query Logでみるとこ

User@Host: kenjiskywalker[kenjiskywalker] @ localhost []
# Query_time: 0.00011111 Lock_time: 0.000099 Rows_sent: 1 Rows_examined: 300000000000000000000000
SET timestamp=999999999999;
SELECT girl FROM girls_list WHERE name = 'homuhomu'

みたいなスロークエリログがあったとして、
確認すべきところは

Query_time    = クエリの処理にかかった時間
Lock_time = ロックされた時間
Rows_sent = クエリにヒットしたレコード数
Rows_examined = 探索対象となったレコード数


で、ロックとかクエリにかかった時間は基本だと思うんですけど、
Rows_examinedがやたら多い場合 (この場合 girls_listテーブルの総レコード数 )
ちょっと注意しなければいけないよっていうところと

log_queries_not_using_indexes=1

とかでインデックスのかかってないテーブルを表示させて
なんとかhistoryとか、なんとかlogとか
こいつ絶対あとあと肥大化するだろうっていうテーブルに対して
インデックスが貼られていないか確認すると
あとあと地雷化するSQLを事前に摘めるので良いです。

って@fujiwaraさんから学びました。