ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

02_freebsd:04_database:01_mysql:slow_log

MySQL - slow log

$vi my.cnfで以下を記述

long_query_time=3
log-slow-queries=/var/log/slow.log

これにより3秒以上処理に時間のかかるクエリの特定が可能(long_query_timeで指定)なのでそのクエリを見直す。

これで動いてるプロセスを見ることもできる。

mysql > show full processlist;
mysql> SHOW PROCESSLIST;
mysql> SHOW FULL PROCESSLIST;

以下がイコールなので、下だとwhereが使える

mysql> SELECT * FROM information_schema.PROCESSLIST where COMMAND='Query';

オンラインで変更

5.0

mysql> set global log-slow-queries = '/tmp/mysql-slow.log';
mysql> set global long_query_time = 1;
mysql> set global log_queries_not_using_indexes=0;

long_query_timeで設定した時間よりも短い結果で返ってくるクエリが保存されていた
原因はlog_queries_not_using_indexesがONになっていた。
これがONになっているとインデックスを使っていないクエリが保存される

5.1以降

mysql> set global slow_query_log_file = '/tmp/mysql-slow.log';
mysql> set global long_query_time = 5;
mysql> set global slow_query_log = ON;
02_freebsd/04_database/01_mysql/slow_log.txt · 最終更新: 2016/10/14 17:23 by matsui