explain执行计划详解
explain执行计划分析,是SQL优化的重要手段。本节内容:
- explain各属性代表的含义。
EXPLAIN SELECT * FROM department d ;
id|select_type|table|partitions|type|possible_keys|key|key_len|ref|rows|filtered|Extra|
--|-----------|-----|----------|----|-------------|---|-------|---|----|--------|-----|
1|SIMPLE |d | |ALL | | | | | 2| 100| |
id
id表示查询中执行 select 子句或操作表的顺序。id的执行顺序规则:
- id越大,越先执行。
- id相同,则按从上到下顺序执行。
id相同
EXPLAIN SELECT * FROM employee e ,department d ,customer c
WHERE e.cus_id = c.id AND e.dep_id = d.id ;
id不同
EXPLAIN SELECT * FROM department
WHERE id = ( SELECT id FROM employee WHERE id =( SELECT id FROM customer WHERE id = 1 ));
EXPLAIN SELECT * FROM department d, (SELECT dep_id FROM employee GROUP BY dep_id) t
WHERE d.id = t.dep_id;
select_type
- simple:简单查询,不含子查询、UNION
- primary:复杂查询的最外层查询
- subquery:子查询
- derived:当from后包含子查询时,标记为derived--临时表
- union:union之后的标记位union,前面的是primary
table:所属表
partitions:分区
type 访问类型(很重要!!)
- system:系统只有一条记录,不会出现。memory引擎
- const:通过主键或者唯一索引,定位到一条数据
- eq_ref:使用主键或者唯一性索引扫描
EXPLAIN SELECT * FROM employee e , department d
WHERE e.id = d.id;
- ref:非唯一性索引扫描。多出现在多表连接操作。
- range:索引的某个范围查找
- index:扫描索引树
- all:全表扫描
type 最好能达到index之上。
版权声明:本文为博主原创文章,未经博主允许不得转载。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix