Database 如何压缩类似的行?

Database 如何压缩类似的行?,database,compression,Database,Compression,我在一个键值数据库中存储了大量大小不等的blob(~10-100kb)。行是追加的,从不删除 由于许多blob非常相似,因此如果将它们串联起来,就有可能对它们进行高度压缩。然而,考虑到数据位于不同的行中,在这里应用这一点并不简单 是否有一种相当简单的方法可以继续压缩它们,或者至少消除部分冗余?有使用字典的压缩库,即预计算数据的公共库。此词典有助于将多个项目共享的数据压缩一次。为了创建字典,通常会将要压缩的项的示例提供给压缩库,以便它可以从中导出有用的公共数据包 这将有助于单独压缩所有项目,同时保

我在一个键值数据库中存储了大量大小不等的blob(~10-100kb)。行是追加的,从不删除

由于许多blob非常相似,因此如果将它们串联起来,就有可能对它们进行高度压缩。然而,考虑到数据位于不同的行中,在这里应用这一点并不简单


是否有一种相当简单的方法可以继续压缩它们,或者至少消除部分冗余?

有使用字典的压缩库,即预计算数据的公共库。此词典有助于将多个项目共享的数据压缩一次。为了创建字典,通常会将要压缩的项的示例提供给压缩库,以便它可以从中导出有用的公共数据包

这将有助于单独压缩所有项目,同时保持接近单个“可靠”归档的压缩率


zstd就是这样一个库的例子,毫无疑问还有很多其他库。

在数据库中存储blob从来都不是一个好的做法。您应该存储这些文件的路径。@Bob我预计会有1.8亿个blob,平均20kb,我需要用两个不同的键访问这些blob,有时还需要按blob的某些属性进行过滤-如果只是为了更复杂的场景的可扩展性,数据库不是比文件更可取吗?我并不是在那里存储大型图像。我不会用blob来填充我的数据库。特别是SQLite数据库。我当然也不是它的超级粉丝!但你真的更喜欢拥有1.8亿个文件吗?然后手动执行一个
select*from foo,其中包含“%string%”之类的内容?对我来说这听起来不可行。如果是的话。。。不,我想不出任何其他的方法,除了使用这些斑点。但我甚至想不出任何方法来“压缩”它们。