这些设置可在 system.settings 中查看,并由源代码自动生成。
shrink_over_allocated_columns_min_waste_bytes
类型
UInt64
默认值
16777216
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.8 | 16777216 | 新增设置:在 INSERT 时将列收缩至实际大小所需的列内最小绝对浪费内存。 |
在 INSERT 时将列收缩至实际大小所需的列内最小绝对浪费内存量 (已预留但未使用) ,以字节为单位。请参阅 shrink_over_allocated_columns_min_waste_ratio。
避免重新分配过度分配量较小的列,因为节省的内存不足以抵消其成本。
shrink_over_allocated_columns_min_waste_ratio
类型
Float
默认值
1
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.8 | 1 | 新增设置:在 INSERT 时将过度分配的列收缩至实际大小,从而降低峰值内存占用。默认禁用(1.0)。 |
在 INSERT 时,会在开销较大的物化和分片写入阶段之前将过度分配的列收缩至实际大小 (即预留内存超过已用内存的列,例如可变长度列按 2 的幂扩容时) ,以降低峰值内存占用。
仅当 allocatedBytes() > byteSize() * shrink_over_allocated_columns_min_waste_ratio 且绝对浪费量至少达到 shrink_over_allocated_columns_min_waste_bytes 时,才会缩减列。
可能的值:
- 大于 1 的 Float。
- 小于或等于 1 的值会禁用缩减功能 (默认值
1.0会保持禁用状态) 。