没什么用的参数min_examined_row_limit
min_examined_row_limit=N
如果扫描行数少于N,则不记入慢查询日志,默认值是0。
我看到有文章建议说配置成1或者其他小整数。实际上恰恰相反,一个语句如果是慢查询,而它的扫描行数很小,反而应该被特别关注到。因为这很可能表示,系统现在处于不健康的状态。
常见的原因比如:
- CPU io 等压力大 ,系统不健康;
- 是一个rows_examined=0 的 count(*)语句,可能需要优化;
- 存在MDL锁,并发线程里有隐患;
- lock table t write引起
- 存在等待flush table的操作,危险信号
- 表t含有大量的大字段
- 这条数据是(高并发修改,且长时间不提交)热点数据
这些都是需要在慢查询中记录,并引起DBA注意的。
所以结论是,这个参数让它留着默认值,不要用就行了。
Loading...