LoginSignup
3
3

More than 5 years have passed since last update.

MySQLで気軽に重いクエリを確認する

Posted at

よく知らないプロジェクトに、ちょっとした変更を加えるとする。
一応、負荷的に問題がなさそうかを見るため、発行されるクエリすべてと、indexがついていないクエリを抽出したい。

my.cnfなどをいじってlogを出力してもいいが、ちょっと面倒である。

そういうとき、一時的にmysql.slow_logテーブルを利用すると便利。
毎回コマンドを忘れてしまうためメモ。

indexがついていないクエリを確認する

設定

set global long_query_time = 1; -- 秒数は任意で設定
set global log_queries_not_using_indexes = on; 
set global log_output = 'TABLE';
set global slow_query_log = ON;

確認

SELECT * FROM `mysql`.`slow_log` WHERE db <> "mysql"; -- 自身が実行したクエリは除外

[おまけ]すべてのクエリを確認する

設定

set global long_query_time = 0;
set global log_output = 'TABLE';
set global slow_query_log = ON;
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3