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
这样的表达式会被优
- 概念:常量折叠是一种编译时优化技术,它将表达式中可以提前计算的部分进行计算,从而减少运行时的计算量。例如,将
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Apache Doris 使用 CBO 和 RBO 结合的优化策略
发表评论 取消回复