我在键值数据库中存储了大量不同大小(~10-100kb)的blob。行被追加,永不删除。
由于许多blob非常相似,如果它们连接在一起,就有可能将它们压缩到很高的程度。但是,鉴于数据位于不同的行,这在此处应用并非易事。
是否有一种相当简单的方法可以压缩它们,或者至少删除部分冗余?
答案 0 :(得分:1)
有些压缩库使用字典,即预先计算的数据的公共库。此字典仅有助于压缩许多项目共享的数据一次。要创建字典,通常会将要压缩的项目样本提供给压缩库,以便它可以从中获取有用的常见数据。
这将有助于单独压缩所有项目,同时保持压缩率接近单个"固体"档案
zstd是这样一个库的一个例子,毫无疑问还有很多其他的。