没什么用的参数min_examined_row_limit

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