Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

merge_max_* MergeTree 表设置

这些设置见于 system.merge_tree_settings,并由 ClickHouse 源代码自动生成。

merge_max_block_size

类型
NonZeroUInt64
默认值
8192

从已合并的 分片 中读入内存的行数。

可能的值:

  • 任意正整数。

合并 会按每块 merge_max_block_size 行从 分片 中读取数据行, 然后进行合并,并将结果写入一个新的 分片。读取的块会放入 RAM 中, 因此 merge_max_block_size 会影响合并所需的 RAM 大小。 所以,对于行非常宽的表,合并 可能会消耗大量 RAM (如果平均每行大小为 100kb,那么在合并 10 个 分片 时, (100kb * 10 * 8192) = 约 8GB RAM) 。减小 merge_max_block_size 可以减少一次 合并 所需的 RAM,但会降低 合并 速度。

merge_max_block_size_bytes

类型
UInt64
默认值
10485760

合并操作中生成的块应包含多少字节的数据。默认情况下, 其值与 index_granularity_bytes 相同。

merge_max_bytes_to_prewarm_cache

类型
UInt64
默认值
1073741824
版本历史
版本默认值注释
25.11073741824Cloud sync

仅在 ClickHouse Cloud 中可用。合并期间用于预热缓存的分片 (compact 或 packed) 的最大大小。

merge_max_dynamic_subcolumns_in_compact_part

类型
UInt64Auto
默认值
auto
版本历史
版本默认值注释
26.1auto新增一个设置,用于限制合并后 Compact 数据分片中的动态子列数量,而不受数据类型中指定参数的影响

该设置用于限定合并后每个 Compact 数据分片中每一列可创建的动态子列最大数量。 无论数据类型中指定了哪些动态参数,它都可以控制 Compact 数据分片中的动态子列数量。

例如,如果表中某一列的类型为 JSON(max_dynamic_paths=1024),并且将设置 merge_max_dynamic_subcolumns_in_compact_part 设为 128, 那么在合并到 Compact 数据分片后,该分片中的动态路径数量将减少到 128,并且只会有 128 个路径作为动态子列写入。

merge_max_dynamic_subcolumns_in_wide_part

类型
UInt64Auto
默认值
auto
版本历史
版本默认值注释
25.11auto新增一个设置,用于在合并后限制 Wide 分片 中动态子列的数量,而不受数据类型中指定参数的影响

每一列在合并后于 Wide 数据分片中可创建的动态子列最大数量。 该设置可减少 Wide 数据分片中生成的文件数量,而不受数据类型中指定的动态参数影响。

例如,如果表中有一列的类型为 JSON(max_dynamic_paths=1024),并且将设置 merge_max_dynamic_subcolumns_in_wide_part 设为 128, 那么在合并为 Wide 数据分片后,该数据分片中的动态路径数量将减少到 128,并且只有 128 条路径会作为动态子列写入。

Navigation