不同版本的mysql命令和配置不一样,以下是2个版本
修改配置文件
log-slow-queries=/alidata/mysql-log/mysql-slow.log long_query_time = 1 定义查过多少秒的查询算是慢查询,我这里定义的是2秒 log-queries-not-using-indexes 没有使用索引的query slow_query_log = 'ON' slow_query_log_file = /usr/local/mysql/data/slow.log long_query_time = 1
这段放到[mysqld]下面,重启mysql
验证慢查询是否开启
/*查看慢查询时间 */ show variables like "long_query_time";默认10s /*查看慢查询配置情况 */ show status like "%slow_queries%"; /*查看慢查询日志路径 */ show variables like "%slow%"; show variables like 'slow_query%'; show variables like 'long_query_time';
命令开启
set global log_slow_queries = on; # 开启慢日志 set [session|global] long_query_time =0.2 # 设置时间.精确的毫秒 set global log_queries_not_using_indexes = on; # 设置无索引的查询 set global slow_query_log='ON'; set global slow_query_log_file='/usr/local/mysql/data/slow.log'; set global long_query_time=1;
=================华丽的分割线========================
查询当前 long_query_time 的时间
修改long_query_time为10;
mysql> set global long_query_time=10; Query OK, 0 rows affected (0.00 sec)
查询还是20,没有变化
最后发现,应该按这种方式查询
mysql> show global variables like "long_query_time";
注:重启mysql配置失效,加载到配置文件中即可。