zstd压缩算法及对比实验

zstd压缩算法应用场景

1.pve系统,虚拟机压缩备份

分配的硬盘32GB,压缩后1.07GB,666
image

2.oceanbase数据库,数据压缩

OceanBase 的压缩机制

OceanBase 数据压缩能力
image

安装zstd压缩工具

ubuntu

sudo apt install zstd

macos

brew install zstd

压缩与解压

压缩

# 默认参数 -3: 压缩级别,-z: 压缩模式
zstd test_file.tar

# 指定压缩级别,数值越大,压缩率越高,耗时越长
zstd -10 test_file.tar

# 多线程压缩
zstd -T0 test_file.tar

# 解压
zstd -d test_file.tar.zst
# 或者
unzstd test_file.tar.zst

# 查看压缩信息
zstd -l test_file.tar.zst

# 测试压缩文件完整性
zstd -t test_file.tar.zst

常用参数

  • -10 压缩比率,范围: 1-22, 默认值=3
  • -z 压缩模式
  • -d 解压模式
  • -v 详细模式
  • -l 显示压缩文件信息
  • 其它参数: man zstd

zstd与其它压缩工具对比

image

zstd简介

Zstd,全称 Zstandard,是由 Facebook(现 Meta)开发并开源的一种高性能无损数据压缩算法。它旨在提供极佳的压缩速度与压缩比的平衡,特别适合现代多核处理器和大内存环境。
Zstd 于 2016 年首次发布,因其出色的性能和灵活性,迅速在各种应用场景中得到广泛应用。
它在解压速度上具有压倒性优势,同时在压缩速度和压缩比上提供了比传统算法(如 gzip)更优的平衡。对于大多数需要无损压缩的新项目,Zstd 是一个非常值得优先考虑的选择。

核心特点:

  • 压缩、解压速度快
  • 优秀的压缩比,并且可调,
  • 小数据块优化(zstd --train)
  • 支持多线程
  • 开源免费
  • 应用广泛(被众多系统和软件采纳)

zstd压缩原理

1.基于lz77字典匹配算法

  1. 查找重复序列
  2. 替换

多重熵编码

  • 霍夫曼编码(根据频率,构建变长的编码表)
  • 有限状态熵编码(Zstd 最主要的熵编码器,用于压缩 (距离, 长度, 字面量长度) 这些符号)
posted @ 2025-08-19 00:18  fx-wiki  阅读(266)  评论(0)    收藏  举报