代码没有发布、索引也没有删除,同一条查询为什么会从几十毫秒突然变成几秒?常见原因是数据分布发生变化,优化器基于估算选择了另一条执行路径。
这一集讲清数据库优化器如何估算成本、统计信息为什么会失真,以及排查慢查询时如何比较“预计读取多少行”和“实际读取多少行”。
重点内容:
- SQL 文本与执行计划为什么不是一回事
- 优化器如何比较不同访问路径的成本
- 选择性和数据倾斜如何影响索引价值
- 统计信息过期为什么会选错计划
- 普通执行计划与实际执行分析的区别
- 为什么强制索引只适合作为谨慎的临时手段
- 查询突然变慢时应保存哪些现场信息
英文词对照:
- Query Optimizer:查询优化器
- Execution Plan:执行计划
- Cardinality:基数估计
- Selectivity:选择性
- Histogram:直方图统计
- Data Skew:数据倾斜
- EXPLAIN ANALYZE:实际执行分析
- Index Hint:索引提示

