查询优化
查询优化
Query Optimization
这是一个NP难问题
1. 逻辑查询优化
基于代价的查询优化
查询计划枚举
- 等价关系代数表达式
- 如果两个关系代数表达式在任意数据库实例上的结果都相同,则这两个关系代数表达式等价
- 选择下推
- 投影下推
基数估计
- 逻辑查询计划的代价用执行计划过程中产生的中间结果的元组数来度量
- 估计查询结果的元组数
- 估计需要的数据库统计信息:系统目录
- T(R):关系R的元组数
- V(R, A):关系R的属性集A的不同值的个数
连接顺序优化
- 重要性
- 连接操作的执行代价高
- 在数据库上执行几十个关系的连接很常见,如联机分析处理任务
- 不同的连接顺序的执行待机差异巨大
- 连接数
- 左深连接数:只有一个左关系
- 右深连接数:只有一个右关系
- 浓密树
2. 物理查询优化
This post is licensed under CC BY 4.0 by the author.