【问题描述】:
情况是这样的,准备修改一台db server的mysql慢查询日志的配置,目前是写在/var/log/mysql中的log中。
想要修改存放到表中。
修改slow-log的output无意发现:
条件设置为query_time=00:00:00时,居然有5000多条,惊呆了。(并且持续增长)
mysql> select count(*) from mysql.slow_log where query_time='00:00:00';

继续执行了重复的命令,发现数量仍然在增加。
第一反应是不是long query time太短,立马查询了一下:
mysql> show variables like '%long_query%'; 发现并不短。

翻了一下文档:
有一个全局的动态生效的“log_queries_not_using_indexes”参数,
这个参数官方给出的解释大概意思是“只要没有用索引的任何查询都将会被记录到slow query log中”。

在server中查了一下这个参数。。
mysql> show variables like '%index%';
果然是ON的状态。而且可以动态修改,不需要停服务。
赶紧关闭……
【解决方案】:
mysql> set global log_queries_not_using_indexes=OFF;

同时检查my.cnf,将该值设置为OFF,以保证库重启之后不再打开该值。
基本搞定。
作者公众号(持续更新)
