SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【MySQL】スロークエリーログの確認ポイント

問題

slow log はどこをどう見たらよいですか。

答え

slow_query_log=1にすると、long_query_timeで指定した秒数以上かかったSQLをログファイルに残してくれる。

ログは以下のような内容。

# Time: 190323 12:26:46
# User@Host: hogeuser[hogeuser] @  [192.168.0.123]
# Query_time: 5.706676  Lock_time: 0.000251 Rows_sent: 30  Rows_examined: 606019
SET timestamp=1584934006;
(以下実行されたSQL)

確認すべき項目は以下の通り。

Rows_examined が極端に多い場合要注意。

遅いのはインデックスがないことがよくあるので、slow.logにSQLが残る場合は、インデックスの使用状況も確認するとよい。

# 行参照についてインデックスを使用しないクエリーをスロークエリログに含める
log_queries_not_using_indexes=1

関連するメモ

コメント