2015-02-11 42 views
3

我正在构建一个允许用户发布内容的应用程序。这个内容然后可以被评论。Couchbase - 大型文件或许多较小的文件?

假定以下:

  1. 用于内容文档是200KB和3MB之间上的文本内容取决于 内部。
  2. 每个评论的大小在10KB到100KB之间。
  3. 可能有1条评论,或者1000条。没有限制。

我的问题是,在存储内容时,应该将单个注释存储在同一个文档中,还是应该分解?

回答

5

我肯定保持文章的内容和评论分开,假设将存在的员额将预览/不带注释使用的应用程序的部分。

对于评论本身(假设它们是分开的),我会说很多小的评论通常会更好,如果仅仅是因为考虑到存在100或1000评论的帖子,您不会去想立即使用它们,所以这是有道理的,因为他们被要求只得到文件(要显示的),而不是装的意见MB上只使用< 100KB的什么在当时已经得到了。

你可能不需要注释被单独保存,但提供你的钥匙是合乎逻辑的,并按照可预测的方案,我看不出有什么理由不单独保存。但是,如果您希望进行一些分组,那么我可能会避免将每个文档的更多评论分组为比您的使用情况更为典型。

如果您在使用视图或许将单个文档中的更多注释分组可能会有所帮助,但即使如此,这也取决于您的用例。

会有来自Couchbase没有软件的瓶颈单独存储大量的文件,唯一的限制是硬件限制,那将是非常相似的;无论你是否有很多小文件或较少的大文件。

+1

谢谢,这里有很好的资讯。 – NotHereAnymore 2015-02-11 13:42:38

+1

我应该澄清一下,“提供你的钥匙是合乎逻辑的,并遵循可预测的方案”,我开始提出一个观点,但没有去任何地方。我的意思是,只要它们很容易引用(例如,post key是“abc”使注释关键字“abc_nnn”或类似),以便应用程序通常可以获取它们而不需要视图(例如,加载“abc_001 “更改为”abc_010“,并在需要更多时重复)。 此外,您可能要考虑把父文件孩子的意见在一个文档中的分组顶级的意见之前(或至少我会)。 – mrkwse 2015-02-11 15:27:31

3

我会去与每个答案的文档作为Couchbase是在组织什么保留在内存中并没有什么辉煌。通常情况下,应用程序在超过25个时不会显示所有评论(我认为这是大多数应用程序使用的数字,例如以大于25的数字显示它们)。因此,如果最新的25条评论被保存在内存中,而较旧的评论随后会自动写入磁盘,则您在使用内存的方式(对Couchbase始终是关键)和访问时间之间保持理想的水平。我会说完美的平衡,我在我的应用程序中做出了类似的决定,并且完美运行。

相关问题