> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# max_rows_* 会话设置

> 自动生成的 max_rows_* 分组中的 ClickHouse 会话设置。

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>类型</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>默认值</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          无需重启即可更改
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

这些设置可在 [system.settings](/docs/zh/reference/system-tables/settings) 中找到，并根据 [源代码](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) 自动生成。

<div id="max_rows_for_lazy_final">
  ## max\_rows\_for\_lazy\_final
</div>

<SettingsInfoBlock type="UInt64" default_value="10000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10000000"},{"label": "lazy FINAL 优化所用集合最大行数的新设置"}]}]} />

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

<div id="max_rows_in_distinct">
  ## max\_rows\_in\_distinct
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

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

<div id="max_rows_in_join">
  ## max\_rows\_in\_join
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

限制表连接时右侧数据结构 (通常为哈希
表) 中的行数。

此设置适用于 [SELECT ... JOIN](/docs/zh/reference/statements/select/join)
操作以及 [Join](/docs/zh/reference/engines/table-engines/special/join) 表引擎。

如果一个查询包含多个连接，ClickHouse 会对每个
中间结果检查此设置。达到限制时，将执行的操作取决于所选的
[`join_algorithm`](/docs/zh/reference/settings/session-settings/join#join_algorithm)——请参阅
该设置，了解各算法对应的行为 (落盘、重新分区、切换，或根据
[`join_overflow_mode`](/docs/zh/reference/settings/session-settings/join#join_overflow_mode) 执行
throw/break) 。

可能的值：

* 正整数。
* `0` — 行数不受限制。

<div id="max_rows_in_set">
  ## max\_rows\_in\_set
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

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

<div id="max_rows_in_set_to_optimize_join">
  ## max\_rows\_in\_set\_to\_optimize\_join
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "禁用连接优化，因为它会阻止 read in order 优化"}]}]} />

在执行连接前，使用彼此的行集合对待连接的表进行过滤时，集合的最大大小。

可能的值：

* 0 — 禁用。
* 任意正整数。

<div id="max_rows_to_group_by">
  ## max\_rows\_to\_group\_by
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

聚合时接收到的唯一键的最大数量。此设置可帮助您在进行聚合时限制内存消耗。

如果 GROUP BY 期间的聚合生成的行数 (唯一的 GROUP BY 键) 超过指定数量，其行为将由
'group\_by\_overflow\_mode' 决定；默认值为 `throw`，但也可以切换为近似 GROUP BY 模式。

<div id="max_rows_to_read">
  ## max\_rows\_to\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

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

<div id="max_rows_to_read_leaf">
  ## max\_rows\_to\_read\_leaf
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

运行分布式查询时，在叶节点上的本地表中可读取的最大行数。虽然分布式查询可以向每个分片 (叶节点) 发出多个子查询，但此限制只会在叶节点的读取阶段进行检查，而在根节点的结果合并阶段会被忽略。

例如，一个集群由 2 个分片组成，每个分片都包含一个有 100 行的表。某个分布式查询如果要从这两个表中读取全部数据，并设置 `max_rows_to_read=150`，则会失败，因为总行数为 200。设置 `max_rows_to_read_leaf=150` 的查询则会成功，因为叶节点最多只会读取 100 行。

该限制会对每个已处理的数据块进行检查。

<Note>
  此设置在 `prefer_localhost_replica=1` 时不稳定。
</Note>

<div id="max_rows_to_sort">
  ## max\_rows\_to\_sort
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

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

<div id="max_rows_to_transfer">
  ## max\_rows\_to\_transfer
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

执行 GLOBAL IN/JOIN 部分时，可传递到远程服务器或保存在临时表中的最大行数。
