> ## 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_delay_* MergeTree 表设置

> 属于 max_delay_* 自动生成分组的 ClickHouse MergeTree 表设置。

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.merge\_tree\_settings](/docs/zh/reference/system-tables/merge_tree_settings) 中查看，且由 ClickHouse 源代码自动生成。

<div id="max_delay_to_insert">
  ## max\_delay\_to\_insert
</div>

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

以秒为单位的值；如果单个分区中的活跃 parts 数量超过
[parts\_to\_delay\_insert](/docs/zh/reference/settings/merge-tree-settings/parts-to#parts_to_delay_insert) 的值，
则使用该值来计算 `INSERT` 延迟。

可能的值：

* 任意正整数。

`INSERT` 的延迟 (以毫秒为单位) 按以下公式计算：

```code theme={null}
max_k = parts_to_throw_insert - parts_to_delay_insert
k = 1 + parts_count_in_partition - parts_to_delay_insert
delay_milliseconds = pow(max_delay_to_insert * 1000, k / max_k)
```

例如，如果某个分区有 299 个活跃 parts，并且 parts\_to\_throw\_insert
\= 300，parts\_to\_delay\_insert = 150，max\_delay\_to\_insert = 1，则 `INSERT`
将延迟 `pow( 1 * 1000, (1 + 299 - 150) / (300 - 150) ) = 1000`
毫秒。

从 23.1 版本开始，公式已改为：

```code theme={null}
allowed_parts_over_threshold = parts_to_throw_insert - parts_to_delay_insert
parts_over_threshold = parts_count_in_partition - parts_to_delay_insert + 1
delay_milliseconds = max(min_delay_to_insert_ms, (max_delay_to_insert * 1000)
* parts_over_threshold / allowed_parts_over_threshold)
```

例如，如果某个分区有 224 个活跃 parts，且 parts\_to\_throw\_insert
\= 300，parts\_to\_delay\_insert = 150，max\_delay\_to\_insert = 1，
min\_delay\_to\_insert\_ms = 10，则 `INSERT` 会延迟 `max( 10, 1 * 1000 *
(224 - 150 + 1) / (300 - 150) ) = 500` 毫秒。

<div id="max_delay_to_mutate_ms">
  ## max\_delay\_to\_mutate\_ms
</div>

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

当存在大量未完成的变更时，对 MergeTree 表执行变更的最大延迟 (以毫秒为单位)
