许多设计文档是否陷入了Couchdb?

时间:2012-01-20 20:15:06

标签: couchdb

我的公司正在使用CouchDB,我很快就要与它进行交互了,所以我正在接受一个速成课程,当我阅读各种教程和示例时,我遇到了一个想知道:许多设计文档是否陷入了CouchDB?

我阅读的具体示例(镜像我自己的用例)是中间层为每个客户创建新设计文档,将所有查询和相关生成的b-tree限制为该客户。

但这是否意味着,在最佳情况下(从商业角度来看)数千的设计文档,您将拥有这些?在我看来,由于每个插入都必须运行这些设计文档中的每一个,如果只是不发射任何内容,那么最终会成为服务器上的压力。

我是否遗漏了一些关于CouchDB设计的重要信息,这使得这个问题无法解决?或者有更聪明的方法来解决这个问题吗?

2 个答案:

答案 0 :(得分:7)

我可能不会推荐这种方法。让我们考虑一些情况:

新客户

您将创建一个新的设计文档,并将其添加到您的数据库中。在这种情况下,当从该设计doc请求第一个视图时,它将运行db中的所有文档来创建索引。因此,每个新客户都会扫描所有文档。

新记录/或记录更改

所有其他文档更改都将在所有设计文档视图函数中运行。

替代

为每个客户创建一个数据库。每个数据库中有一个设计文档。拥有所有客户数据库复制到的聚合的主数据库。

答案 1 :(得分:3)

AFAIK CouchDB仅在首次请求结果时更新视图(这就是为什么他们有“陈旧视图”选项)。

所以,这种类型的负载对你来说应该不是问题。但是如果视图输出大量数据,你最好注意磁盘空间的消耗。