↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

共享哈希表做并行聚合,倾斜一来就全盘皆输 RSS

PostgreSQL 目前的并行聚合走部分聚合加最终聚合,数据压不下去时,重新分组的最终阶段会吃掉大部分执行时间。Andrei Lepikhov 试了让所有 worker 直接更新一张共享哈希表:48 核机器上八个 worker,分布均匀时快 4.82 倍,2% 倾斜时 4.49 倍,但 80-20 分布已经打平,热点占到 95% 时只剩 0.04 倍。他的结论是进程模型为共享可变状态付出的代价远高于线程模型,不如按分组哈希做分区。

发布于 2026-09-10T10:59:48.803002Z · Andrei Lepikhov · pgEdge 博客
基准 并行 聚合

PostgreSQL 目前的并行聚合走部分聚合加最终聚合,数据压不下去时,重新分组的最终阶段会吃掉大部分执行时间。Andrei Lepikhov 试了让所有 worker 直接更新一张共享哈希表:48 核机器上八个 worker,分布均匀时快 4.82 倍,2% 倾斜时 4.49 倍,但 80-20 分布已经打平,热点占到 95% 时只剩 0.04 倍。他的结论是进程模型为共享可变状态付出的代价远高于线程模型,不如按分组哈希做分区。

PostgreSQL 目前的并行聚合走部分聚合加最终聚合,数据压不下去时,重新分组的最终阶段会吃掉大部分执行时间。Andrei Lepikhov 试了让所有 worker 直接更新一张共享哈希表:48 核机器上八个 worker,分布均匀时快 4.82 倍,2% 倾斜时 4.49 倍,但 80-20 分布已经打平,热点占到 95% 时只剩 0.04 倍。他的结论是进程模型为共享可变状态付出的代价远高于线程模型,不如按分组哈希做分区。

原始来源 ↗

来源记录
  • center.info_item · f6610481ae2b71e4 · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · f6610481ae2b71e4 · 2026-10-03T04:08:55.967155Z