Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

read_in_* 会话设置

这些设置可在 system.settings 中查看,并由 源代码 自动生成。

read_in_order_two_level_merge_threshold

类型
UInt64
默认值
100

按主键顺序进行多线程读取时,触发 预合并 步骤所需读取的最少 parts 数量。

read_in_order_use_buffering

类型
Bool
默认值
1
版本历史
版本默认值注释
24.71按主键顺序读取时,在合并前先进行缓冲

按主键顺序读取时,在合并前先进行缓冲。这样可以提高查询执行的并行度

read_in_order_use_virtual_row

类型
Bool
默认值
1
版本历史
版本默认值注释
26.81默认启用虚拟行优化。在跨多个 parts 按主键顺序读取时,它允许 `MergingSortedTransform` 使用稀疏索引中的主键值重新确定源的优先级,从而避免读取与查询无关的 parts,同时通过最多包含 `max_threads` 个 parts 的有界预读窗口保持并行读取。这可显著降低峰值内存占用(参见 https://github.com/ClickHouse/ClickHouse/issues/52624)。
24.110按主键或其单调函数的顺序读取时,使用虚拟行。在跨多个 parts 搜索时,这很有用,因为只会访问相关的部分。

按主键或其单调函数的顺序读取时,使用虚拟行。在跨多个 parts 搜索时,只会读取实际能对结果产生贡献的 parts,同时通过最多包含 max_threads 个 parts 的有界预读窗口保持并行读取。

read_in_order_use_virtual_row_per_block

类型
Bool
默认值
0
版本历史
版本默认值注释
26.40在按序读取期间,每读取一个块后就发出一条虚拟行,以便 `MergingSortedTransform` 更频繁地重新调整各源的优先级。

当与 read_in_order_use_virtual_row 一起启用时,每读取一个块后都会发出一条虚拟行 (而不仅仅是在每个 parts 的开头) 。 这使 MergingSortedTransform 能更频繁地重新调整各源的优先级,这在下游过滤器丢弃大量行、且数据在各个 parts 之间分布不均时尤其有用。 请注意,这会禁用读取时的 read_in_order_use_buffering 优化和预合并 (read_in_order_two_level_merge_threshold) 。

Navigation