贝利信息

SQL数据库聚合执行路径_单阶段与多阶段

日期:2026-01-10 00:00 / 作者:冰川箭仙
SQL聚合操作执行路径分单阶段与多阶段,取决于数据规模、并行能力、内存限制及优化器决策;单阶段在单节点完成哈希聚合,适用于小数据;多阶段含Partial与Final聚合,用于分布式或大数据场景。

SQL数据库中的聚合操作(如 COUNTSUMGROUP BY)执行路径是否走单阶段还是多阶段,主要取决于数据规模、并行能力、内存限制以及查询优化器的决策,而非语法本身。

单阶段聚合执行路径

单阶段聚合指所有分组与计算在同一个执行节点(或单个算子)中完成,通常适用于小数据集或本地执行场景。

多阶段聚合执行路径

多阶段聚合将聚合拆分为局部聚合(Partial Aggregate)和全局聚合(Final Aggregate)两个及以上阶段,常见于分布式或并行查询引擎(如 PostgreSQL 并行查询、Spark SQL、Presto/Trino、ClickHouse)。

影响执行路径的关键因素

优化器不会随意选择阶段数,而是基于代价模型权衡。以下因素直接影响判断:

如何观察实际执行路径

通过执行计划确认是否启用多阶段,重点关注节点名称与重分布操作: