主讲 林晓斌 腾讯云
MySQL判定是否为慢查询,使用的是语句执行时间:把语句执行时间与long_query_time
系统参数进行比较,如果大于long_query_time
则记录该语句到慢查询日志。
long_query_time
默认值是10s,生产上一般设置为1s,如果对于延迟敏感的业务应该设置为更低。
语句是否使用索引,是说语句执行过程中有没有用到表的索引,explain一个语句时,key的值是不是null。
所以执行一个语句是否被记录到慢查询日志,是由它的执行时间决定的,而这个执行时间可能受到各种因素影响。那么是否使用索引与是否记录慢查询之间没有必然的联系。
当索引为主键索引时,也有可能造成全表扫描;所以通常所说的“使用索引”,是指通过检索索引树从而达到了有效地减少了扫描行数这个目的,也就是说关心的是扫描行数。
索引的过滤性
查询的过滤性
index condition pushdown
的优化 ,减少回表次数,但是没有绕开最左前缀原则