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:

表示没有使用索引的排序

相关推荐
数据库小学妹29 分钟前
SQL Server数据库同步工具怎么选?6款方案对比+信创迁移避坑清单
数据库·经验分享·sqlserver·dba
不剪发的Tony老师41 分钟前
国产数据库之GaussDB:固若金汤
数据库·gaussdb
雨辰AI1 小时前
生产级实测:SpringBoot3 + 达梦数据库接口从 200ms 优化至 20ms 完整调优指南
java·数据库·spring boot·后端·政务
凡人叶枫2 小时前
Effective C++ 条款39:明智而审慎地使用 private 继承
java·数据库·c++·嵌入式开发
基德爆肝c语言2 小时前
MySQL表的操作
前端·数据库·mysql
TDengine (老段)2 小时前
TDengine 连接算子 — Inner/Outer/ASOF/Window Join 的实现与使用
大数据·数据库·物联网·哈希算法·时序数据库·tdengine·涛思数据
Keano Reurink2 小时前
搜索API与GSC数据对比:发现数据盲区
数据库·python·数据挖掘
shushangyun_2 小时前
汽车服务行业B2B平台+AI解决方案哪家专业:2026年最新测评
java·运维·网络·数据库·人工智能·汽车
大黄说说3 小时前
深入理解 Go 协程 Goroutine:并发编程的核心精髓
java·数据库·python
sulikey3 小时前
数据库系统概论4 - 更新与视图 期末速成课笔记
数据库·笔记·考试·期末速成·数据库系统概论