怎么Sql调优的
题目
平时你是怎么做 SQL 调优的?
参考答案
我一般按这个顺序做:
- 找到慢 SQL
- 看执行计划
- 判断是否走索引、扫描行数是否过大
- 再决定改 SQL、改索引、改表结构还是改业务流程
调优不是只会“加索引”,还包括减少字段、避免函数、拆大查询、限制深分页等。
回答展开
- 这题不要上来就说加索引,更好的回答顺序是:先找慢 SQL,再看执行计划,再判断是 SQL 写法、索引设计、表结构还是业务访问模式的问题。
- 真实调优里常看的不是单个 SQL 文本,而是 rows、回表次数、排序、临时表、分页深度,以及这个查询到底是不是高频热点查询。
- 如果只是偶发慢,可以先从统计和监控入手;如果是稳定慢,就要结合索引、字段裁剪、覆盖索引、游标分页、冷热分离等方案一起优化。
实际场景
比如后台订单列表页很慢,排查发现 SQL 里既有条件过滤又有排序,还用了深分页。最后通过补联合索引、去掉 select all、把翻页改成基于主键游标之后,查询耗时会明显下降。