map_buckets_coefficient
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
with_buckets 序列化所需的最小平均 Map 大小 (每行的键数) 。
如果平均 Map 大小小于该值,则无论其他桶设置如何,都会使用单个桶。
值为 0 时,将禁用该阈值,并始终应用分桶策略。
此设置可用于避免对小型 Map 使用分桶序列化所带来的额外开销,因为其收益微乎其微。
map_buckets_strategy
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]范围内。