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:

表示没有使用索引的排序

相关推荐
龙腾AI白云1 小时前
仿真到现实(Sim-to-Real)迁移:跨越仿真与现实鸿沟
数据库·机器学习·plotly·知识图谱·tornado
freejackman4 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
.痞老板.5 小时前
mysql初阶--增删改查操作
数据库·mysql
lambo mercy10 小时前
AI智能租房助手
数据库
浮生若城11 小时前
MySQL:库与表的操作
数据库·mysql
薛定谔的悦11 小时前
光储充一体机从主控到执行单元的双层架构
数据库·mongodb·架构
数字新视界11 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
csdn_aspnet12 小时前
Redis 入门:Windows、Mac安装指南
数据库·windows·redis·缓存·mac
山甫aa12 小时前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
Nturmoils1 天前
集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界
数据库