> ## 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_insert_* 会话设置

> 归于 max_insert_* 自动生成分组的 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_insert_block_size">
  ## max\_insert\_block\_size
</div>

**别名**: `max_insert_block_size_rows`

<SettingsInfoBlock type="NonZeroUInt64" default_value="1048449" />

为插入到表中而生成的块的最大大小 (按行数计) 。

此设置会在以下两种上下文中控制块的生成：

1. 格式解析：当服务器通过任意接口 (HTTP、带内联数据的 clickhouse-client、gRPC、PostgreSQL wire protocol) 解析基于行的输入格式 (CSV、TSV、JSONEachRow 等) 时，会在以下情况下输出块：

   * 同时达到 min\_insert\_block\_size\_rows 和 min\_insert\_block\_size\_bytes，或
   * 达到 max\_insert\_block\_size\_rows 或 max\_insert\_block\_size\_bytes 中的任意一个

   注意：使用 clickhouse-client 或 clickhouse-local 从文件读取时，数据由客户端自身解析，因此此设置适用于客户端。

2. INSERT 操作：在 INSERT 查询期间，以及数据流经 materialized view 时，此设置的行为取决于 `use_strict_insert_block_limits`：

   * 启用时：会在以下情况下输出块：
     * 最小阈值 (AND) ：同时达到 min\_insert\_block\_size\_rows 和 min\_insert\_block\_size\_bytes
     * 最大阈值 (OR) ：达到 max\_insert\_block\_size\_rows 或 max\_insert\_block\_size\_bytes 中的任意一个

   * 禁用时：当达到 min\_insert\_block\_size\_rows 或 min\_insert\_block\_size\_bytes 中的任意一个时，就会输出块。此时不会强制执行 max\_insert\_block\_size 设置。

可能的值：

* 正整数。

<div id="max_insert_block_size_bytes">
  ## max\_insert\_block\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "新增设置：用于控制在 Row Input Format 中解析数据时按字节计的块大小。"}]}]} />

为插入到表中而生成的块的最大大小 (以字节为单位) 。

此设置与 max\_insert\_block\_size\_rows 配合使用，并在相同上下文中共同控制块的生成。有关这些设置会在何时以及如何应用的详细信息，请参见 max\_insert\_block\_size\_rows。

可能的值：

* 正整数。
* 0 — 该设置不参与块的生成。

<div id="max_insert_delayed_streams_for_parallel_write">
  ## max\_insert\_delayed\_streams\_for\_parallel\_write
</div>

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

延迟最终分片刷写的最大流 (列) 数量。默认值为自动 (如果底层存储支持并行写入，例如 S3，则为 100；否则为禁用)

Cloud 默认值：`50`。

<div id="max_insert_threads">
  ## max\_insert\_threads
</div>

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

执行 `INSERT SELECT` 查询时可使用的最大线程数。

可能的值：

* 0 (或 1) — `INSERT SELECT` 不会并行执行。
* 大于 1 的正整数。

Cloud 默认值：

* 8 GiB 内存的节点为 `1`
* 16 GiB 内存的节点为 `2`
* 更大节点为 `4`

只有在 `SELECT` 部分并行执行时，并行 `INSERT SELECT` 才会生效，参见 [`max_threads`](/docs/zh/reference/settings/session-settings/max-threads#max_threads) 设置。
值越大，内存使用量越高。

<div id="max_insert_threads_min_free_memory_per_thread">
  ## max\_insert\_threads\_min\_free\_memory\_per\_thread
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "4294967296"},{"label": "根据可用空闲内存限制插入线程数量的新设置"}]}]} />

与 `max_threads_min_free_memory_per_thread` 相同，但它作用于 `max_insert_threads`，而不是 `max_threads`。默认值更高，因为插入管道通常比读取管道持有更大的单线程缓冲区 (MergeTree 分片、压缩块) 。

如果空闲内存小于 `max_insert_threads` 与此值的乘积，则会下调 `max_insert_threads` 以满足该限制，最少可降至 `1`。

将其设为 `0` 可禁用此限制。
