Apache Doris 在查询优化方面通过结合 RBO 和 CBO,实现了对简单和复杂查询的高效优化。RBO 负责处理常量折叠、子查询改写和谓词下推等基础优化操作,而 CBO 则在 Join Reorder 等复杂场景中发挥作用。这种结合策略使得 Apache Doris 能够在面对各种查询场景时,既能保证优化过程的效率,又能在必要时进行深入的代价评估,以选择最优的执行计划。

1. 基于规则的优化器(RBO)

RBO 是基于一组预定义的规则进行优化的查询优化器。这些规则通常是通用的、独立于数据的、可以在生成查询执行计划时快速应用的。RBO 的优点在于它速度快,适用于简单、常见的查询优化场景。Apache Doris 的 RBO 主要支持以下优化策略:

  • 常量折叠(Constant Folding)

    • 概念:常量折叠是一种编译时优化技术,它将表达式中可以提前计算的部分进行计算,从而减少运行时的计算量。例如,将 3 + 5 这样的表达式直接计算成 8
    • 应用场景:在 SQL 查询中,类似 SELECT 2 * 3 FROM table 这样的表达式会被优

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部