sql执行计划需要关注那些内容?

执行explain会返回那些字段(加粗标红为主要关注字段)?

1、id:执行计划中每个操作的唯一标识,多表联查的时候会出现多条数据id是一样的

2、select_type:查询类型,常见类型有:SIMPLE、PRIMARY、UNION、SUBQUERY

3、table:涉及到的表

4、partitions:涉及到的分区

5、type查询时使用到的索引类型:system、const、eq_ref、ref、range、index、ALL

6、possible_keys:可能被查询优化器使用到的索引

7、key查询优化器选择的索引

8、key_len:索引长度

9、ref:索引的那一列被使用

10、rows:需要扫描的行数,就是此次查询需要扫描多少行得到结果

11、filtered:按表条件过滤的行百分比

12、Extra额外信息

三个关键字段解析:

type索引类型解析:

1、system:系统表

2、const:常数索引

3、eq_ref:唯一索引,只扫描索引树种的一个一个匹配行

4、ref:非唯一索引,只扫描索引树种一部分数据来查找匹配行

5、range:范围索引,只扫描索引树种的一个范围来查找匹配的行

6、index:全索引扫描,遍历索引树

7、ALL:全表扫描

按照序号排列,效率由快到慢

key:

实际使用到的索引,正常使用到了索引,则显示索引名称

Extra:

Using where:

表示使用了where过滤,过滤条件字段无索引。

Using index:

使用了覆盖索引,只需要扫描索引,无需回表检索

Using where;Using index

查询的列被索引覆盖,where筛选条件是索引列之一

Using temporary:

创建了临时表用来存储结果,排序或者分组的情况下

Using filesort:

表示没有使用索引的排序

相关推荐
徐子元竟然被占了!!5 小时前
Linux-systemctl
linux·数据库·oracle
YJlio7 小时前
Active Directory 工具学习笔记(10.8):AdInsight——保存与导出(证据留存、共享与二次分析)
数据库·笔记·学习
suoyue_zhan7 小时前
GBase的管理监控平台GEM实践指南
数据库
哈哈老师啊8 小时前
Springboot学生综合测评系统hxtne(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring boot
小小8程序员8 小时前
Redis-10
数据库·redis·缓存
liuzhilongDBA8 小时前
从collation mismatch异常到其原理
数据库·version·glibc·postgres·collation
梁萌8 小时前
MySQL数据库分库分表介绍
数据库·mysql·shardingsphere·分库分表
占疏9 小时前
dify API访问工作流/聊天
开发语言·数据库·python
Cat God 00710 小时前
SQL使用及注意事项
数据库·sql·mysql