start

EFFICIENCY IN THE COLUMBIA DATABASE QUERY OPTIMIZER

优化器发展版本

  • 第一代

    • 模块化的,分层的,可扩展的,基于规则的优化器
    • 扩展的复杂性,搜索性能
  • 第二代

    • 类似Volcano,更加优秀的优化规则,且使用物理属性参与优化,使用新的搜索方式
    • 更加灵活,但是还是难与扩展
  • 第三代

    • 使用面对象的思想实现的优化器,易于扩展,更灵活

可以按照搜索策略分为两类 1. 自底向上 2. 自顶向下 Cascades Optimizer Framework 对关键操作定义为抽象类,通过实现抽象类来添加规则或者进行表达式变换来扩展优化器, * 使用hash来消除重复的表达式 * 再group中把逻辑表达式和物理表达式分开 * 剪枝 先计算上层group的cost 阈值,在计算下层节点的时候,直接判断是否还需要继续进行优化 预先对执行计划设置阈值,当执行计划的代价和阈值足够接近的时候,则判定已完成搜索

术语