merge_tree_coarse_index_granularity
merge_tree_coarse_index_granularity 个子范围,并在这些子范围内递归搜索所需的键。
可选值:
- 任意正偶整数。
merge_tree_compact_parts_min_granules_to_multibuffer_read
merge_tree_determine_task_size_by_prewhere_columns
merge_tree_generic_exclusion_search_max_steps
IndexGenericExclusionSearchStepLimitReached 和 TextIndexGenericExclusionSearchStepLimitReached 这两个 profile events 会统计预算耗尽的次数。
(默认) 值 0 表示步数不受限制。
可选值:
- 0 表示步数不受限制,或任意正整数。
merge_tree_max_bytes_to_use_cache
merge_tree_max_bytes_to_use_cache 字节的数据,则不会使用未压缩块缓存。
未压缩块缓存用于存储为查询提取的数据。ClickHouse 使用此缓存来加快重复的小型查询的响应速度。此设置可防止读取大量数据的查询污染缓存。uncompressed_cache_size 这一服务器设置定义了未压缩块缓存的大小。
可能的值:
- 任意正整数。
merge_tree_max_rows_to_use_cache
merge_tree_max_rows_to_use_cache,则不会使用未压缩块缓存。
未压缩块缓存用于存储为查询提取出的数据。ClickHouse 使用此缓存来加快重复执行的小型查询的响应速度。此设置可防止读取大量数据的查询污染缓存。uncompressed_cache_size 服务器设置定义了未压缩块缓存的大小。
可选值:
- 任意正整数。
merge_tree_min_bytes_for_concurrent_read
merge_tree_min_bytes_for_concurrent_read,那么 ClickHouse 会尝试使用多个线程并发读取该文件。
可能的值:
- 正整数。
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
- 正整数。
merge_tree_min_bytes_for_seek
merge_tree_min_bytes_for_seek 字节,ClickHouse 就会顺序读取包含这两个块的那段文件范围,从而避免额外的寻道。
可能的值:
- 任意正整数。
merge_tree_min_bytes_per_read_stream
MergeTree 扫描创建的最大读取流数量。不会影响 ordered、FINAL、分层读取和并行副本读取。基于数据量的上限为 ceil(sqrt(estimated_read_bytes / this_setting))。ClickHouse 还会保留至少 16 个流,以及应用此上限前请求流数量的至少四分之一,因此有效流数量为 min(requested_streams, max(volume_based_cap, 16, floor(requested_streams / 4)))。这些下限可为 CPU 密集型表达式和聚合保留下游并行度,因为其成本未体现在 estimated_read_bytes 中。
estimated_read_bytes 是经索引和分区裁剪后保留的标记范围内待读取列的未压缩大小。之所以使用未压缩大小,是因为需要在每流开销与每个流完成的工作量之间进行权衡;工作量取决于处理的值数量,而非压缩率。
当无法以保守方式估算读取量时,不会应用此上限。例如,旧分片需要读取其他物理列以计算新添加的 DEFAULT 列,或所选范围仅读取可变宽度列的一部分时。
默认值 64 KB 源自成本模型 T(N) = W/N + F + V·N,其中 W 是有效工作量,F 是固定管道开销,V 是每流可变成本。最优流数量为 sqrt(W/V)。通过吞吐量将 W 以字节表示,可得 C = throughput · V ≈ 400 MB/s · 0.17 ms ≈ 64 KB。增大该值会减少流数量 (更保守) ;减小该值则允许使用更多流。设置为 0 可禁用此优化。
可能的值:
- 非负整数。
merge_tree_min_bytes_per_task_for_remote_reading
filesystem_prefetch_min_bytes_for_single_read_task
每个任务的最小读取字节数。
merge_tree_min_read_task_size
merge_tree_min_rows_for_concurrent_read
merge_tree_min_rows_for_concurrent_read,ClickHouse 会尝试使用多个线程并发读取该文件。
可能的值:
- 正整数。
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
- 正整数。
merge_tree_min_rows_for_seek
merge_tree_min_rows_for_seek 行,ClickHouse 就不会在文件中执行寻道,而是顺序读取数据。
可能的值:
- 任意正整数。
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
PartsSplitter——每次从 MergeTree 读取时,都会以指定概率将读取范围拆分为相交和不相交两部分。
merge_tree_storage_snapshot_sleep_ms
- 0 - 无延迟 (默认)
- N - 延迟的毫秒数
merge_tree_use_const_size_tasks_for_remote_reading
merge_tree_use_deserialization_prefixes_cache
merge_tree_use_prefixes_deserialization_thread_pool
max_prefixes_deserialization_thread_pool_size 控制。