我想弄清楚这两者之间的权衡。
似乎使用一个具有多个视图的设计文档很快就会更新,因为在编制索引时,每个文档都会在一次传递中传递到每个视图中。
但是,如果我在设计文档中更改视图,则需要权衡所有视图。
这看起来是否正确?还有其他人可以增加这种理解吗?
答案 0 :(得分:7)
可以找到更多详细信息here:
视图被组织到设计文档中。从理论上讲,您可以在数据库中拥有任意数量的设计文档,并在单个设计文档中拥有所需的多个视图。从理论上讲,每个视图可以为每个文档发出任意多个b树节点,并且你的map / reduce代码可以是任意复杂的。但请记住:
同一设计文档中的所有视图都被编入索引;更改,添加或删除任何视图都需要重新编制索引
视图中每个文档有多次发出会降低性能(但是比将每个发射放在自己的视图中要高一些)
复杂地图和减少代码会降低性能
作为旁注,CouchDB和Cloudant确实在更新视图时有所不同: