跳到主要内容
版本:Stable-3.1

数据压缩

StarRocks 支持对表和索引数据进行压缩 (compression)。数据压缩不仅有助于节省存储空间,还可以提高 I/O 密集型任务的性能。请注意,压缩和解压缩数据需要额外的 CPU 资源。

选择数据压缩算法

StarRocks 支持四种数据压缩算法:LZ4、Zstandard(或 zstd)、zlib 和 Snappy。 这些数据压缩算法在压缩率和压缩/解压缩性能上有所不同。 通常来说,这些算法的压缩率排名如下:zlib > Zstandard > LZ4 > Snappy。其中,zlib 拥有较高的压缩比。但由于数据高度压缩,使用 zlib 算法的表,其导入和查询性能会受到一定程度的影响。而 LZ4 和 Zstandard 算法具有较为均衡的压缩比和解压缩性能。您可以根据自身业务场景在这些压缩算法中进行选择,以满足您对存储或性能的需求。如果您对存储空间占用没有特殊需求,建议您使用 LZ4 或 Zstandard 算法。

说明

不同的数据类型也会影响算法的压缩率。

设置数据压缩算法

您只能在创建表时为其设置数据压缩算法,且后续无法修改。

以下示例基于 Zstandard 算法创建表 data_compression。 详细说明请参阅 CREATE TABLE

CREATE TABLE `data_compression` (
`id` INT(11) NOT NULL COMMENT "",
`name` CHAR(200) NULL COMMENT ""
)
ENGINE=OLAP
UNIQUE KEY(`id`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`id`)
PROPERTIES (
"compression" = "ZSTD"
);

说明

如不指定数据压缩算法,StarRocks 默认使用 LZ4。

您可以通过 SHOW CREATE TABLE 命令查看指定表采用的压缩算法。