doris的优化器策略介绍

Doris(Apache Doris)的优化器采用基于成本的优化策略(Cost-Based Optimization, CBO),结合规则优化(Rule-Based Optimization, RBO),以生成高效的分布式执行计划。以下是其核心优化策略:

采用CBO(基于代价优化)、RBO(基于规则优化)和HBO(基于历史优化)相结合的优化策略。RBO支持常量折叠、子查询重写和谓词下推等优化,CBO支持Join Reorder等优化,HBO能够基于历史查询信息推荐最优执行计划。


1. 基于代价的优化(CBO)

  • 统计信息收集 :
    通过收集表、列、分区的基数(Cardinality)、数据分布直方图等统计信息,评估不同执行计划的代价。 \\text{代价} = f(\\text{CPU}, \\text{内存}, \\text{网络IO}, \\text{磁盘IO})
  • 代价模型 :
    综合计算节点资源消耗、数据倾斜等因素,选择预估代价最低的执行计划。

2. 查询重写(Query Rewrite)

  • 谓词下推(Predicate Pushdown) :
    将过滤条件(如 WHERE 子句)提前至存储层执行,减少数据传输量。
  • 投影下推(Projection Pushdown) :
    仅读取查询所需的列,避免全列扫描。
  • 子查询优化 :
    将相关子查询转换为 JOIN 操作,或利用物化视图加速计算。

3. 分布式执行计划优化

  • 数据本地化(Data Locality) :
    优先将计算任务调度到存储数据的节点,减少网络传输。
  • 并行执行(Parallelism) :
    对 JOIN、AGGREGATE 等操作拆分到多个节点并行处理。
  • 动态分区裁剪 :
    根据查询条件跳过无关分区(如时间分区),仅扫描必要数据。

4. 索引策略

  • 智能索引(Smart Index) :
    自动为高频过滤字段(如主键)创建索引,加速点查。
  • 前缀索引(Prefix Index) :
    对复合查询条件(如 WHERE col1=? AND col2=?)建立联合索引。

5. 列式存储优化

  • 列裁剪(Column Pruning) :
    仅读取查询涉及的列,减少 I/O 开销。
  • 延迟物化(Late Materialization) :
    延迟行数据的拼接,在过滤后生成完整行。

6. 资源与并发控制

  • 资源组(Resource Group) :
    为不同任务分配 CPU、内存配额,避免资源抢占。
  • 查询优先级 :
    支持高优先级查询插队执行,保障关键任务。

7. 执行引擎优化

  • 向量化引擎(Vectorized Execution) :
    批量处理数据,减少函数调用开销。
  • Pipeline 并行 :
    将算子拆分为流水线阶段,提升吞吐量。

总结

Doris 的优化器通过统计信息驱动代价评估、分布式计划优化、存储层协同等策略,显著提升复杂查询效率。用户可通过 EXPLAIN 命令查看执行计划,并结合统计信息收集(如 ANALYZE TABLE)确保优化效果。

相关推荐
真上帝的左手3 小时前
27. 数据产品-数据治理-11.完整岗位体系
大数据·数据治理·数据架构
I Am a robert girl3 小时前
VideoLoop:用循环工作记忆对抗长视频 Agent 的语义抖动
大数据·人工智能·机器学习·多模态agent·长视频理解·工作记忆·语义抖动
龙亘川3 小时前
水质决策报表业务建模:从自定义报表到六时间尺度自动报表闭环
大数据·人工智能·智慧城市·开源软件
广东帝工3 小时前
给内河航道搭建立体感知网络
大数据
合合技术团队4 小时前
合合信息亮相新加坡科技周,携手博彦科技共拓海外AI市场
大数据·人工智能·科技·合合信息·textin·多模态文本智能技术
55873 生态系统4 小时前
1817册典籍如何被AI读取?——“可复核文明知识库“的体系化构建实践
大数据·人工智能·55873全域文明生态体系·55873操作系统·全域文明生态系统·55873数字资产
Regentsoft丽晶软件5 小时前
服装智能配补调系统哪家强?售罄率提升背后的算法逻辑分析
大数据·数据库架构·零售
临床数据科学和人工智能兴趣组5 小时前
字符串转换为句子风格
大数据·数据库·人工智能·r语言·r语言-4.2.1
YH_Analytics5 小时前
2026 年二氧化碳气体回收设备产业链分析报告市场洞察
大数据·人工智能
橙色云-智橙协同研发5 小时前
电子高科技行业:机械与电子(MCAD & ECAD)如何协同?
大数据·运维·服务器·人工智能·安全