压缩算法

更新时间:
复制为 MD 格式

本文介绍了列存引擎支持的压缩算法,以及如何修改、查看压缩算法。

支持的压缩算法

列存引擎支持以下压缩算法,其中 NONE 表示不压缩。可以建表时指定压缩算法或者建表后修改压缩算法,未指定时默认使用 ZSTD 压缩算法。Lindorm 时序编码 + ZSTD 压缩相比于开源算法可以节省30%的存储空间。

压缩算法

压缩率

压缩速度

解压速度

ZSTD

GZIP

中高

LZ4

极快

极快

SNAPPY

很快

很快

NONE

-

-

-

建表时指定压缩算法

通过 COMPRESSION 属性指定:

CREATE TABLE sensor (
    device_id VARCHAR,
    region VARCHAR,
    time TIMESTAMP,
    update_date VARCHAR,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id,update_date,time)
  )PARTITION BY LIST(`IDENTITY`(update_date),bucket(256, device_id)) WITH (EngineType=`COLUMN`, `COMPRESSION`='ZSTD');

修改压缩算法

重要

修改压缩算法后仅对新写入的数据文件生效,历史数据文件仍使用旧的压缩算法,历史数据通过Compaction后会转换为新的压缩算法。

ALTER TABLE sensor SET `COMPRESSION` = 'ZSTD';

查看压缩算法

SHOW TABLE VARIABLES FROM sensor like 'COMPRESSION';