Skip to main content
这些设置可在 system.settings 中找到,并根据 源代码 自动生成。

max_rows_for_lazy_final

lazy FINAL 优化所用集合中的最大行数。超过该值时,将回退到普通 FINAL。

max_rows_in_distinct

使用 DISTINCT 时,允许的最大不同行数。

max_rows_in_join

限制表连接时右侧数据结构 (通常为哈希 表) 中的行数。 此设置适用于 SELECT … JOIN 操作以及 Join 表引擎。 如果一个查询包含多个连接,ClickHouse 会对每个 中间结果检查此设置。达到限制时,将执行的操作取决于所选的 join_algorithm——请参阅 该设置,了解各算法对应的行为 (落盘、重新分区、切换,或根据 join_overflow_mode 执行 throw/break) 。 可能的值:
  • 正整数。
  • 0 — 行数不受限制。

max_rows_in_set

由子查询创建的 IN 子句中的数据集的最大行数。

max_rows_in_set_to_optimize_join

在执行连接前,使用彼此的行集合对待连接的表进行过滤时,集合的最大大小。 可能的值:
  • 0 — 禁用。
  • 任意正整数。

max_rows_to_group_by

聚合时接收到的唯一键的最大数量。此设置可帮助您在进行聚合时限制内存消耗。 如果 GROUP BY 期间的聚合生成的行数 (唯一的 GROUP BY 键) 超过指定数量,其行为将由 ‘group_by_overflow_mode’ 决定;默认值为 throw,但也可以切换为近似 GROUP BY 模式。

max_rows_to_read

运行查询时可从表中读取的最大行数。 该限制会对每个已处理的数据块进行检查,并且仅应用于最深层的 表表达式;从远程服务器读取时,也仅在 远程服务器上进行检查。

max_rows_to_read_leaf

运行分布式查询时,在叶节点上的本地表中可读取的最大行数。虽然分布式查询可以向每个分片 (叶节点) 发出多个子查询,但此限制只会在叶节点的读取阶段进行检查,而在根节点的结果合并阶段会被忽略。 例如,一个集群由 2 个分片组成,每个分片都包含一个有 100 行的表。某个分布式查询如果要从这两个表中读取全部数据,并设置 max_rows_to_read=150,则会失败,因为总行数为 200。设置 max_rows_to_read_leaf=150 的查询则会成功,因为叶节点最多只会读取 100 行。 该限制会对每个已处理的数据块进行检查。
此设置在 prefer_localhost_replica=1 时不稳定。

max_rows_to_sort

排序前允许的最大行数。这有助于在排序时限制内存消耗。 如果 ORDER BY 操作需要处理的记录数超过指定数量, 其行为将由 sort_overflow_mode 决定,该值默认设置为 throw

max_rows_to_transfer

执行 GLOBAL IN/JOIN 部分时,可传递到远程服务器或保存在临时表中的最大行数。
最后修改于 2026年7月23日