GBASE南大通用技术分享:GBase 8a数据库执行计划分布式执行算子简介
南大通用GBase 8a数据库(gbase database)针对JOIN、GROUP BY、ORDER BY等核心操作,设计了适配分布式架构的专属执行算子,是执行计划的核心组成,分为静态无迁移、动态重分布两类。
1、分布式JOIN算子
•静态Hash Join(最优):关联两张表均为哈希分布表,且关联字段为分片键。各节点本地分片直接关联,无跨节点数据迁移,并行度最高、性能最优,是优先推荐的关联方式。
•小表广播Join:大表为分片表、小表数据量小。将小表全量广播至所有数据节点,各节点本地完成大小表关联,避免大表数据重分布,适配小维度表关联场景。
•动态重分布Hash Join:关联字段非分片键,节点本地无法完成关联。优化器自动对其中一张或两张表数据重分片、跨节点迁移数据后再关联,存在数据传输开销,性能次之。
2、分布式GROUP BY算子
•静态GROUP BY(最优):GROUP BY字段包含表分片键,各节点本地分片独立完成聚合,仅最终结果汇总至管理节点,无数据迁移,性能极高。
•动态重分布GROUP BY:GROUP BY字段不包含分片键,本地聚合结果分散,需先将数据按聚合字段重分布,再全局聚合,存在数据迁移开销。
•两阶段GROUP BY:先各节点局部聚合压缩数据量,再全局汇总聚合,大幅减少跨节点传输数据量,是大数量聚合的核心优化策略。
3、排序与去重算子
GBase 8a默认优先节点本地排序,再全局归并排序;若执行计划出现Using filesort,代表未利用索引排序,需手动优化索引或改写排序条件。DISTINCT去重逻辑与GROUP BY底层复用相同聚合算子,支持分布式并行去重。

浙公网安备 33010602011771号