Skip to main content
这些设置可在 system.settings 中查看,并由 源代码 自动生成。

group_by_overflow_mode

设置当用于 聚合 的唯一键数量超过限制时的行为:
  • throw:抛出异常
  • break:停止执行查询并返回部分结果
  • any:继续对已进入集合的键进行聚合,但不再向集合中添加新键。
使用 any 值可以执行 GROUP BY 的近似计算。这种近似计算的效果取决于数据的统计特性。

group_by_top_k_optimization_observation_rows

对于 enable_group_by_top_k_optimization:在冻结一个完整 top-K 堆之前,每个聚合 stream 观察的行数;该堆跳过的输入行不足 10%,且驱逐的键数少于其容量。堆被冻结后,聚合会像禁用该优化一样继续执行。 有效窗口至少是堆预留大小的两倍,因此堆在接受评估前始终有机会填满。0 会禁用此冻结机制 (当边界并列集合增长到超过堆容量时,堆仍会被冻结) 。 这不会影响不含 ORDER BYGROUP BY keys LIMIT K 查询,这类查询始终禁用冻结:该形态的执行计划包含一个合成排序,只有堆能够限制哈希表时才有收益,因此冻结堆会使执行计划比未优化的计划更慢。

group_by_two_level_threshold

键的数量达到多少时开始启用两级聚合。0 表示未设置该阈值。

group_by_two_level_threshold_bytes

当聚合状态的大小达到多少字节时,开始使用两级聚合。0 表示未设置阈值。当至少一个阈值达到条件时,将使用两级聚合。

group_by_use_nulls

更改 GROUP BY clause 处理聚合键类型的方式。 使用 ROLLUPCUBEGROUPING SETS 说明符时,某些聚合键可能不会用于生成某些结果行。 这些键对应的列会根据此设置,在相应行中填入默认值或 NULL Possible values:
  • 0 — 使用聚合键类型的默认值来填补缺失值。
  • 1 — ClickHouse 会按照 SQL 标准的方式执行 GROUP BY。聚合键的类型会转换为 Nullable。对于未使用相应聚合键的行,其对应列会填充为 NULL
See also:
最后修改于 2026年8月26日