MySQL

MySQL5.0

# vi /etc/my.cnf
[mysqld]
log-slow-queries = /var/log/mysql_slow.log
long_query_time = 1 
log-queries-not-using-indexes
変数名説明
log-slow-queriesログ出力先ファイル名(絶対パス/想定パス指定可)
long_query_time指定した時間(sec)以上かかったクエリを記録(デフォルト10秒)
log-queries-not-using-indexes指定するとインデックスを使用しないクエリも記録する


参考URL:http://yonchu.hatenablog.com/entry/20100716/1279301089


MySQL5.5以上

設定の確認

mysql> show variables like 'slow%';
+---------------------+----------------+
| Variable_name       | Value          |
+---------------------+----------------+
| slow_launch_time    | 2              |
| slow_query_log      | OFF            |
| slow_query_log_file | mysql-slow.log |
+---------------------+----------------+
slow_query_log がOFFになっているとスロークエリの出力は行われません。
mysql> show variables like 'long%';
+-----------------+-----------+ 
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
slow_query_logがONのとき、long_query_timeを超えるクエリがスロークエリとして出力されます。

スロークエリを出力する(コンソールからの設定)

ファイルが無いとエラーになるので、最初にファイルを作る

# cd /var/log
# touch mysql_slow.log
# chown mysql:mysql mysql_slow.log
# vi /etc/logrotate.d/mysql
/var/log/mysql_slow.log
/var/log/mysql.log
{
   weekly
   rotate 10
   delaycompress
   missingok
}
# mysql -p
mysql> set global slow_query_log_file = '/var/log/mysql_slow.log';
mysql> set global long_query_time = 5;
mysql> set global slow_query_log = ON;

スロークエリを出力する(my.cnfの設定)

# vi /etc/my.cnf
[mysqld]
slow_query_log
slow_query_log-file = /var/log/mysql/mysql-slow.sql
long_query_time = 5 
デフォルトでは無効になっています。

mysqldumpslowを使って集計する

$ mysqldumpslow -s t /var/log/mysql/mysql-slow.sql

Count: 93  Time=4.40s (409s)  Lock=0.00s (0s)  Rows=5.0 (465), ebisu[ebisu]@2hosts
  show index from `bom`.`logs`

Count: 86  Time=3.76s (323s)  Lock=0.00s (0s)  Rows=0.4 (34), meguro[meguro]@localhost
  SELECT `hash`.`id` FROM `hash` WHERE (`key` = 'S')
  
  -s オプションでどの項目でソートするかを指定することができます。

応用

スロークエリだけでなくすべてのクエリの実行状況を集計することができます。

mysql > set global slow_query_log_file = '/tmp/slow.log';
mysql > set global long_query_time = 0;



参考URL:http://d.hatena.ne.jp/masayuki14/20120704




トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-30 (木) 01:40:11