Columbia Optimizer
start
EFFICIENCY IN THE COLUMBIA DATABASE QUERY OPTIMIZER
优化器发展版本
第一代
- 模块化的,分层的,可扩展的,基于规则的优化器
- 扩展的复杂性,搜索性能
第二代
- 类似Volcano,更加优秀的优化规则,且使用物理属性参与优化,使用新的搜索方式
- 更加灵活,但是还是难与扩展
第三代
- 使用面对象的思想实现的优化器,易于扩展,更灵活
可以按照搜索策略分为两类 1. 自底向上 2. 自顶向下 Cascades Optimizer Framework 对关键操作定义为抽象类,通过实现抽象类来添加规则或者进行表达式变换来扩展优化器, * 使用hash来消除重复的表达式 * 再group中把逻辑表达式和物理表达式分开 * 剪枝 先计算上层group的cost 阈值,在计算下层节点的时候,直接判断是否还需要继续进行优化 预先对执行计划设置阈值,当执行计划的代价和阈值足够接近的时候,则判定已完成搜索
术语
Read other posts