■MySQLでスロークエリログを記録
Mysql slow queryの設定と解析方法 - 主夫ときどきプログラマ
http://masayuki14.hatenablog.com/entry/20120704/1341360260
mysql> SELECT * FROM mysql.slow_log;
… スロークエリを確認
Empty set (0.30 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'slow_query_log';
… スロークエリのON/OFFを確認(初期設定はOFF)
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | OFF |
+----------------+-------+
1 row in set (0.25 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time';
… スロークエリの記録時間を確認(初期設定は10秒)
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'log_output';
… スロークエリの記録先を確認(初期設定はファイル)
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set (0.00 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'slow_query_log_file';
… スロークエリの記録ファイルを確認(初期設定は /var/lib/mysql/refirio-slow.log)
+---------------------+---------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------+
| slow_query_log_file | /var/lib/mysql/refirio-slow.log |
+---------------------+---------------------------------+
1 row in set (0.01 sec)
mysql> SET GLOBAL slow_query_log = ON;
… スロークエリのON/OFFを変更
mysql> SET GLOBAL long_query_time = 1.0;
… スロークエリの記録時間を変更
mysql> SET GLOBAL log_output = 'TABLE';
… スロークエリの記録先をデータベースに変更
mysql> SELECT * FROM mysql.slow_log;
… スロークエリを確認
mysql> SELECT * FROM mysql.general_log;
… 一般ログを確認
mysql> SELECT * FROM mysql.slow_log ORDER BY query_time DESC LIMIT 10;
… スロークエリを時間の長い順に表示する例
なお以下のようにすると、スロークエリログをファイルに書き出せる
$ echo 'SELECT * FROM mysql.slow_log ORDER BY start_time DESC LIMIT 100;' | mysql -u ユーザー名 -p データベース名 > ダンプファイル名
■ファイルに記録したスロークエリを解析する例
スロークエリの出力ファイルを変更する場合
mysql> set global slow_query_log_file = '/tmp/mysql-slow.log';
スロークエリを表示
$ vi /var/run/mysqld/mysqld-slow.log
スロークエリを解析(実行時間の遅い順に表示)
$ mysqldumpslow -s t /var/run/mysqld/mysqld-slow.log