这些设置可在 system.merge_tree_settings 中查看,且由 ClickHouse 源代码自动生成。
map_buckets_coefficient
类型
Float
默认值
1
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.3 | 1 | 新增一个设置,用于控制在 'with_buckets' Map 序列化中,使用 `sqrt` 和 `linear` 策略计算桶数量时的系数 |
在 sqrt 和 linear map_buckets_strategy 中,用于根据平均 Map 大小计算桶数量的系数。
对于 sqrt 策略:round(map_buckets_coefficient * sqrt(avg_map_size))。
对于 linear 策略:round(map_buckets_coefficient * avg_map_size)。
当 map_buckets_strategy 为 constant 时,此设置将被忽略。
map_buckets_min_avg_size
类型
UInt64
默认值
32
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.3 | 32 | 新增一个设置,用于控制应用 `with_buckets` 序列化所需的最小平均 Map 大小(每行的键数) |
应用 with_buckets 序列化所需的最小平均 Map 大小 (每行的键数) 。
如果平均 Map 大小小于该值,则无论其他桶设置如何,都会使用单个桶。
值为 0 时,将禁用该阈值,并始终应用分桶策略。
此设置可用于避免对小型 Map 使用分桶序列化所带来的额外开销,因为其收益微乎其微。
map_buckets_strategy
类型
MergeTreeMapBucketsStrategy
默认值
sqrt
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.3 | sqrt | 新增了一个设置,用于控制在 `with_buckets` `Map` 序列化中选择桶数量的策略 |
根据平均 Map 大小,控制在 with_buckets Map 序列化中选择桶数量的策略。
可能的值:
- constant — 始终使用 max_buckets_in_map 作为桶数量,不受平均 Map 大小影响。
- sqrt — 使用
round(map_buckets_coefficient * sqrt(avg_map_size))作为桶数量,并将结果限制在[1, max_buckets_in_map]范围内。 - linear — 使用
round(map_buckets_coefficient * avg_map_size)作为桶数量,并将结果限制在[1, max_buckets_in_map]范围内。