CouchDB视图和设计文档

时间:2013-12-26 18:24:57

标签: couchdb cloudant couchdb-futon

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

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

1 个答案:

答案 0 :(得分:8)

在内部,每个设计文档中的视图在“视图组”中一起管理。每个视图组在访问时产生一个单独的视图服务器 - 即如果有8个视图组,则将有8个JavaScript进程。这当然具有设计和性能影响。来自CouchDB documentation

  

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

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

您还可以使用视图组 - 视图服务器关系。例如,如果您有一个具有8个内核的CPU,则可能有8个视图组,每个内核需要1个,以提高并行性。