背景:log_queries_not_using_indexes参数开启后,没有使用索引的查询,却没有记录到慢日志中。其中缘由,来一次解剖.
======================背景分割线==================
解决方案:
检查一个参数设置,min_examined_row_limit
==================以下扯犊子分析========================
语句执行扫描的行数小于该参数设置的值不会被记录到慢日志;(注意该参数有session和global两个级别,恩,这里有个坑)
当前配置: 还有个参数设置较为特别,log_throttle_queries_not_using_indexes=3, 比如,执行select * from table; table表有8条记录,执行3次慢日志记录到三次。
执行第四次 就不记录了,而是总结起来,一分钟输出一次相同查询的慢日志总结,并且不是主动打印出总结,别问我怎么知道的,都是一把心酸;(大概是下一次有新的其他慢日志时会在其上方打印出来,可以理解为存到了一个'队列'中,在那放着放着..)
慢查询日志示例:单条慢查询格式,先是日期时间, 执行语句的用户信息,主机信息;连接ID-show processlist里的; 查询,锁分别对应的时间,执行了多少行;最后是执行语句;
分析完毕,不禁有个疑问,若是DBA同学,show processlist,然后怎么设置其他session的 variables值,这里很有意思啊,
毕竟很多生产环境是长连接, 也不好粗鲁的kill人家一下,或让人家重连吧。。
=============End=============