EXPLAIN 验证走没走索引要点
- SELECT 前加 EXPLAIN 即可打印执行计划,不改数据
- type 列看访问类型,从 ALL 全表到 ref / const 越优越好
- key 列显示实际用到的索引名,NULL 表示没用上
- rows 列是预估扫描行数,越小越高效
- Extra 出现 Using index 是覆盖索引,最优
- 看到 Using filesort / Using temporary 多半要优化
EXPLAIN 验证走没走索引示例
-- 看这条查询有没有走索引
EXPLAIN
SELECT * FROM user WHERE user_name = '张三';
-- 关注输出里的几列:
-- type : 访问类型(ALL 最差,const 最优)
-- key : 实际使用的索引(NULL 即未命中)
-- rows : 预估扫描行数
-- Extra: Using index 表示覆盖索引
避坑提醒:调慢查询固定流程:EXPLAIN 看 type 和 key,type 是 ALL 且 key 为 NULL,就说明索引没生效要重设计。