【问题标题】:Storing wiki-style revisions in PostgreSQL -- do I need to worry about data size?在 PostgreSQL 中存储 wiki 风格的修订——我需要担心数据大小吗?
【发布时间】:2015-02-14 22:53:07
【问题描述】:

我目前正准备着手开发一个非常基本的数据存储应用程序。作为其中的一部分,我想存储大型文本文档的修订(类似于 Wiki)。我试图弄清楚如果我存储所有修订版,而不是变得“花哨”并且只存储版本之间的差异,我应该多么担心数据的大小。因此,例如,即使整个文档中只有一个单词发生了变化,我也会将整个文档存储两次,而那个单词发生了变化。

显然,这是实现它的最简单方法(也是基于差异恢复版本时最不容易出错的方法),但它也会占用大量空间。

但是,我知道 PostgreSQL 具有自动数据压缩功能。但即使在阅读了文档之后,我也不完全确定压缩是如何工作的。所以我希望那里的一些 PostgreSQL 专家能够提示我—— PostgreSQL 会足够“聪明”地注意到这两行在同一列中有非常相似的数据并自动为我做一些压缩魔法吗?或者这真的没有帮助?

归根结底,我想采用最简单的解决方案,如果 PostgreSQL 能够帮助我,我不必担心空间效率低下。

【问题讨论】:

    标签: postgresql compression wiki


    【解决方案1】:

    PostgreSQL 的“TOAST”压缩适用于单个值,因此它不会知道或关心其他版本。

    您还没有说有多少文档以及它们有多大,因此很难提供更多信息。如果你的机器支持 PostgreSQL,它本身会很乐意处理 TB 级的数据。

    无论如何,您可能都希望存储差异,因为这可能比文档的旧版本的整个副本更让您感兴趣。在这种情况下,请考虑使用触发功能为您自动生成它们。如果您可以使用 pl/perl 或 pl/python,那么使用合适的模块为您生成差异应该不会超过几个小时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      相关资源
      最近更新 更多