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

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

count(DISTINCT) 会关掉整条语句的并行 RSS

去重聚合没有合并函数,工作进程无法把各自的去重结果拼起来,于是这一个关键字就让整条语句退回串行。Radim Marek 的改法是把去重下推成 GROUP BY,先在子查询里按列分组再数行数,这样可以走并行哈希。在 1000 万行的表上,串行去重聚合耗时 1211 毫秒并落盘 115 MB,改写后只要 360 毫秒且全在内存,快约 3.4 倍。要近似值可以用 postgresql-hll。

发布于 2026-09-10T10:59:47.511054Z · Radim Marek · boringsql.com
COUNT 并行查询 性能

去重聚合没有合并函数,工作进程无法把各自的去重结果拼起来,于是这一个关键字就让整条语句退回串行。Radim Marek 的改法是把去重下推成 GROUP BY,先在子查询里按列分组再数行数,这样可以走并行哈希。在 1000 万行的表上,串行去重聚合耗时 1211 毫秒并落盘 115 MB,改写后只要 360 毫秒且全在内存,快约 3.4 倍。要近似值可以用 postgresql-hll。

去重聚合没有合并函数,工作进程无法把各自的去重结果拼起来,于是这一个关键字就让整条语句退回串行。Radim Marek 的改法是把去重下推成 GROUP BY,先在子查询里按列分组再数行数,这样可以走并行哈希。在 1000 万行的表上,串行去重聚合耗时 1211 毫秒并落盘 115 MB,改写后只要 360 毫秒且全在内存,快约 3.4 倍。要近似值可以用 postgresql-hll。

原始来源 ↗

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