首页/数据/NoSQL 速查/列压缩 CODEC 选择
本包目录(322 条)
MongoDB99 条Elasticsearch89 条
ClickHouse56 条
时序与列式28 条选型与架构50 条

列压缩 CODEC 选择

CODEC 定义列的压缩算法与编码链:默认 LZ4;ZSTD 压缩率更高;时间戳用 Delta/DoubleDelta、浮点用 Gorilla 等差分编码后再套 ZSTD,能同时改善压缩率与读取。

NoSQL 速查数据更新于 2026-10-12
常用组合CODEC(LZ4)、CODEC(ZSTD(3))、CODEC(Delta, ZSTD(3))、CODEC(DoubleDelta, ZSTD)、CODEC(Gorilla, ZSTD)
适用整数/时间列用 Delta,浮点用 Gorilla,文本用 ZSTD(3-9)
变更MODIFY COLUMN … CODEC 会触发旧数据重写(mutation)

示例

示例
CREATE TABLE metrics2
(
    ts DateTime CODEC(DoubleDelta, ZSTD(3)),
    value Float64 CODEC(Gorilla, ZSTD(3)),
    payload String CODEC(ZSTD(9))
)
ENGINE = MergeTree ORDER BY ts;

-- 已有列改压缩(重写数据)
ALTER TABLE metrics2 MODIFY COLUMN payload String CODEC(ZSTD(6));
压缩等级越高 CPU 开销越大,写入密集的表用中等级别更平衡;查询只看部分列时解压成本也是按列计的。

易错点

  • 编码器与列类型不匹配会报错,Delta 系列只适用于整数与日期类
  • 对所有列无脑上最高级 ZSTD 会明显拖慢写入与合并,按列特性选型

数据来源与参考

  • ClickHouse Docs: Compression codecs
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌