在阅读Couchbase文档时,我发现了以下内容。
因为每个视图中的每个map / reduce组合的索引 在给定的设计文档中同时更新,避免 在同一设计文档中声明太多视图
http://docs.couchbase.com/admin/admin/Views/views-writing.html
如果是这样,为什么它甚至允许您在设计文档中添加多个视图?我应该只为每个设计文档创建一个视图吗?
答案 0 :(得分:2)
当视图索引的数据相关且需要同时更新相关索引时,将多个视图组合在一个设计文档下非常有用。
例如,参加啤酒样品'与Couchbase一起分发的存储桶。它包括两种类型的文件,一种用于啤酒厂,一种用于啤酒。您可以在这两种文档类型上创建一组视图。假设您有四个视图可实现以下目标:
因此,基本上我们有两个操作与啤酒相关的文档和另外两个操作啤酒的视图。此时,在一个设计文档下将相关视图组合在一起非常有用,因为这意味着它们将同时更新。如果您要添加新啤酒厂,则列出所有啤酒厂的视图和列出一个国家/地区中所有啤酒厂的视图将同时触发更新。另一方面,如果您要在单独的设计文档中使用这两个视图,则最终会触发两个单独的视图更新,这将意味着如果您使用stale = false会增加响应时间,或者如果您不使用则可能会出现不一致的结果。 / p>
这在任何给定数据集中是否有用取决于每个实现,文档的相关程度以及响应时间的重要程度。 Couchbase使您可以选择调整视图更新以满足您的要求。
另一个原因是您可以在每个设计文档的基础上控制自动index update triggers,因此您可以比其他人更频繁地更新某些视图。
Couchbase View Engine Internals上的维基页面可能会让您感兴趣,因为它很好地解释了设计文档概念,并提供了有关如何通过视图引擎将任务委派给设计文档的进一步见解。