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

merge_max_block_size

从已合并的 分片 中读入内存的行数。 可能的值:
  • 任意正整数。
合并 会按每块 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

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

merge_max_bytes_to_prewarm_cache

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

merge_max_dynamic_subcolumns_in_compact_part

该设置用于限定合并后每个 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

每一列在合并后于 Wide 数据分片中可创建的动态子列最大数量。 该设置可减少 Wide 数据分片中生成的文件数量,而不受数据类型中指定的动态参数影响。 例如,如果表中有一列的类型为 JSON(max_dynamic_paths=1024),并且将设置 merge_max_dynamic_subcolumns_in_wide_part 设为 128, 那么在合并为 Wide 数据分片后,该数据分片中的动态路径数量将减少到 128,并且只有 128 条路径会作为动态子列写入。
最后修改于 2026年7月23日