SHOW GLOBAL VARIABLES LIKE '%query_time%' ; SHOW GLOBAL VARIABLES LIKE '%slow_query%' ;
set global log_output = 'TABLE'; set global long_query_time = 0.3; set global slow_query_log = ON; flush logs;
select * from mysql.slow_log order by start_time desc limit 10
一定時間以上かかるクエリーやフルスキャンを行った場合にログに出力する機能。デフォルトではOFF
my.iniに以下を追加
long_query_time=5 log-slow-queries=c:/mysql/slow.log
フルスキャンに関しては4.1からログに取れるようになった。起動オプションに以下を加える
--log-queries-not-using-indexes
[mysqld] log_queries_not_using_indexes
他DBMSにおいてはコストベースのオプティマイザが優位になりつつあるが、MySQLはルールベースだけらしい。