SQL 查询慢的常见原因分析
SQL 查询慢的常见原因分析
面试提示:回答SQL性能问题时,建议结合执行计划、索引优化和数据库架构三个维度展开,展现系统性思维。
一、索引相关问题
1. 缺乏合适的索引
- 全表扫描:未建立WHERE条件字段的索引
- 隐式类型转换:如字符串字段用数字查询导致索引失效
- 索引选择性差:性别等低区分度字段建索引效果差
关键结论:通过
EXPLAIN
查看type
列,若出现ALL
表示全表扫描,必须优化
2. 索引使用不当
- 索引失效场景:
- 使用
!=
、NOT IN
等否定操作符 - 对索引列使用函数(如
DATE(create_time)
) - 前导模糊查询(
LIKE '%xxx'
)
- 使用
- 最左前缀原则:联合索引
(a,b,c)
无法跳过a字段使用