这些设置可在 system.settings 中找到,并根据 源代码 自动生成。
max_rows_for_lazy_final
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.4 | 10000000 | 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
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.1 | 0 | 禁用连接优化,因为它会阻止 read in order 优化 |
在执行连接前,使用彼此的行集合对待连接的表进行过滤时,集合的最大大小。
可能的值:
- 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 行。
该限制会对每个已处理的数据块进行检查。
max_rows_to_sort
排序前允许的最大行数。这有助于在排序时限制内存消耗。
如果 ORDER BY 操作需要处理的记录数超过指定数量,
其行为将由 sort_overflow_mode 决定,该值默认设置为 throw。
max_rows_to_transfer
执行 GLOBAL IN/JOIN 部分时,可传递到远程服务器或保存在临时表中的最大行数。