4

对于 CouchDB,您可以创建多个视图和/或多个设计文档。

将视图分组在同一个设计文档中还是将每个视图保留在自己的设计文档中更好?

4

1 回答 1

9

在内部,每个设计文档中的视图在“视图组”中一起管理。每个视图组在访问时都会生成一个单独的视图服务器——即,如果有 8 个视图组,您将有 8 个 JavaScript 进程。这肯定会影响设计和性能。从 CouchDB文档中,

当来自同一视图组的一个视图(即在单个设计文档中定义的所有视图)被确定为需要重建时,就会发生视图索引重建。例如,如果您有一个具有不同视图的设计文档,并且您更新了数据库,则设计文档中的所有三个视图索引都将被更新。

因此,从设计/部署的角度来看,您需要注意更改单个视图将重建设计文档中的所有其他视图。您可以使用此技巧在后台构建它们,但它仍将构建组中的所有视图,因此可能很昂贵。

您还可以使用视图组-视图服务器关系来发挥您的优势。例如,如果您有一个具有 8 个内核的 CPU,您可能有 8 个视图组,每个内核 1 个,以提高并行度。

于 2013-12-30T08:32:38.877 回答