SQL 优化:从慢查询到执行计划
文章目录
- SQL 优化:从慢查询到执行计划
-
- 先别急着改 SQL
- 先看什么字段
- 常见优化点
- 一个简单例子
- 经验判断
- 最后
先别急着改 SQL
很多人一看到慢查询就开始“拍脑袋优化”,其实第一步应该是看执行计划。EXPLAIN 能告诉你这条 SQL 到底走了什么索引、扫了多少行、有没有临时表、有没有文件排序。
先看什么字段
通常重点看这几个:
- type:访问类型,越接近索引扫描越好
- key:最终用到了哪个索引
- rows:预估扫描行数
- extra:有没有 Using filesort、Using temporary
常见优化点
- 能走索引就别全表扫
- 少用 select *
- 避免在索引列上做函数、计算、隐式转换
- 分页别用太深的 offset
- 联表查询先过滤再 join
一个简单例子
— 慢
select * from orders where date_format(create_time, '%Y-%m') = '2026-06';
— 改写
select * from orders
where create_time >= '2026-06-01'
and create_time < '2026-07-01';
经验判断
真正的 SQL 优化不是把语句写得“更高级”,而是让数据库少做事。
最后
先看执行计划,再动索引,再改 SQL,顺序别反了。




