<
极客APP-每日一课笔记-为什么SQL语句使用了索引但还是慢查询
>
上一篇

极客APP-每日一课笔记-如何深入理解分布式事务TCC实现原理
下一篇

极客APP-每日一课笔记-如何用sed处理多行配置

主讲 林晓斌 腾讯云

MySQL慢查询

MySQL判定是否为慢查询,使用的是语句执行时间:把语句执行时间与long_query_time系统参数进行比较,如果大于long_query_time则记录该语句到慢查询日志。

long_query_time默认值是10s,生产上一般设置为1s,如果对于延迟敏感的业务应该设置为更低。

使用索引

语句是否使用索引,是说语句执行过程中有没有用到表的索引,explain一个语句时,key的值是不是null。

所以执行一个语句是否被记录到慢查询日志,是由它的执行时间决定的,而这个执行时间可能受到各种因素影响。那么是否使用索引与是否记录慢查询之间没有必然的联系。

关于使用索引

当索引为主键索引时,也有可能造成全表扫描;所以通常所说的“使用索引”,是指通过检索索引树从而达到了有效地减少了扫描行数这个目的,也就是说关心的是扫描行数。

索引的过滤性

查询的过滤性

解决最左前缀原则带来的过多回表次数

Top
Foot