MySQL_执行计划

MySQL 执行计划

核心目的与实现

EXPLAIN

在 SQL 语句前加上 EXPLAIN,即可模拟优化器执行 SQL 的过程,并返回详细的信息结果集

结果集分析

1. id:执行顺序的指挥官

id 决定了表中操作的执行顺序,可以理解为“栈内队列”或执行优先级

2. select_type:查询的类型

定义了 SELECT 语句的复杂程度

3. type:连接类型

重点关注指标

类型 描述 优化建议
system 表中只有一行记录(系统表)
const 的特例
无需优化
极少见
const 通过主键或唯一索引定位到一行数据 性能极快
WHERE id = 1
eq_ref 在连接查询中
使用了主键或唯一索引进行等值匹配
性能很好
通常出现在多表连接
ref 使用非唯一索引进行等值匹配
可能找到多行
性能较好
是常见的索引使用情况
range 使用索引进行范围查询
(如 BETWEEN, >, IN
性能尚可
优于全表扫描
index 全索引扫描
遍历整个索引树
比全表扫描快
但仍需优化
ALL 全表扫描 必须优化
通常意味着未命中索引
Powered by Forestry.md