本文介绍了列存引擎支持的压缩算法,以及如何修改、查看压缩算法。
支持的压缩算法
列存引擎支持以下压缩算法,其中 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';该文章对您有帮助吗?