我们有一个应用程序,它将大型二进制数据作为大型对象存储在PostgreSQL数据库中,现在有一个用例,我们对这些数据进行操作,这样我们就知道这些已经保存的数据的一部分将再次以稍微不同的组合保存。实际上,我们将拆分一些文件并以不同的方式组合它们,但希望除了新的组合文件之外保留原始文件。
这听起来是一个考虑重复数据消除的好用例。你知不知道在Postgres中有什么是直接和透明的,这样我们就不需要重新发明轮子了?像是一个存储层或插件添加到postgres,这样它就可以自己处理至少整个数据库的重复数据消除?或者某个库可以作为postgres的大型对象函数的包装,我们的应用程序可以使用这个包装库,包装库可以完成所有的复制部分,或者添加一些用于记账的表和所有这些东西?
我们知道有支持重复数据消除的文件系统,一种可能是将其用作Postgres数据存储的后端。另一个选择是将新数据保存在postgres之外的重复数据消除文件系统中。但是现在我们更喜欢postgres中的一些东西,这些东西可以很容易地被转储,并且有事务等支持。
谢谢你的提示!

最佳答案

不,没有(截至9.4)。
PostgreSQL压缩每个单独的项,但不执行任何跨项压缩或重复数据消除。
toast机制意味着postgresql应该能够通过一些努力消除toast able类型中的值,这只是实现它的问题。
欢迎使用修补程序;-)

关于database - PostgreSQL中是否对大型二进制数据进行了透明的重复数据删除?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22607778/

10-15 21:09
查看更多