使用设计文档有什么好处?
What's the benefits of using a design document?
在阅读 Couchbase 文档时,我遇到了以下问题。
Because the index for each map/reduce combination within each view
within a given design document is updated at the same time, avoid
declaring too many views within the same design document
http://docs.couchbase.com/admin/admin/Views/views-writing.html
如果是这样,为什么它甚至允许您将多个视图添加到设计文档中?我应该只为每个设计文档创建一个视图吗?
当视图索引的数据相关并且需要同时更新相关索引时,将多个视图组合在一个设计文档下非常有用。
例如,以随 Couchbase 分发的 'beer sample' 存储桶为例。它包括两种类型的文件,一种用于啤酒厂,另一种用于啤酒。您可以在这两种文档类型上创建一堆视图。假设您有四个实现以下目标的视图:
- 列出所有啤酒
- 列出所有啤酒厂
- 列出特定 abv 下的所有啤酒
- 列出一个国家/地区的所有啤酒厂
所以基本上我们有两个视图对与啤酒厂相关的文档进行操作,另外两个视图对啤酒进行操作。此时,将相关视图组合在一个设计文档下非常有用,因为这意味着它们将同时更新。如果您要添加一个新啤酒厂,列出所有啤酒厂的视图 和列出一个国家/地区所有啤酒厂的视图 将同时触发更新。另一方面,如果您将这两个视图放在单独的设计文档中,您最终会触发两个单独的视图更新,这将意味着如果您使用 stale=false 会增加响应时间,否则可能会出现不一致的结果。
这在任何给定数据集中是否有用取决于每个实现、文档的相关程度以及响应时间的重要性。 Couchbase 为您提供了调整视图更新以满足您的要求的选项。
另一个原因是您可以在每个设计文档的基础上控制自动化 index update triggers,因此您可以比其他视图更定期地更新一些视图。
您可能会对 Couchbase View Engine Internals 上的 wiki 页面感兴趣,因为它很好地解释了设计文档的概念,并提供了一些关于视图引擎如何将任务委派给设计文档的进一步见解。
在阅读 Couchbase 文档时,我遇到了以下问题。
Because the index for each map/reduce combination within each view within a given design document is updated at the same time, avoid declaring too many views within the same design document
http://docs.couchbase.com/admin/admin/Views/views-writing.html
如果是这样,为什么它甚至允许您将多个视图添加到设计文档中?我应该只为每个设计文档创建一个视图吗?
当视图索引的数据相关并且需要同时更新相关索引时,将多个视图组合在一个设计文档下非常有用。
例如,以随 Couchbase 分发的 'beer sample' 存储桶为例。它包括两种类型的文件,一种用于啤酒厂,另一种用于啤酒。您可以在这两种文档类型上创建一堆视图。假设您有四个实现以下目标的视图:
- 列出所有啤酒
- 列出所有啤酒厂
- 列出特定 abv 下的所有啤酒
- 列出一个国家/地区的所有啤酒厂
所以基本上我们有两个视图对与啤酒厂相关的文档进行操作,另外两个视图对啤酒进行操作。此时,将相关视图组合在一个设计文档下非常有用,因为这意味着它们将同时更新。如果您要添加一个新啤酒厂,列出所有啤酒厂的视图 和列出一个国家/地区所有啤酒厂的视图 将同时触发更新。另一方面,如果您将这两个视图放在单独的设计文档中,您最终会触发两个单独的视图更新,这将意味着如果您使用 stale=false 会增加响应时间,否则可能会出现不一致的结果。
这在任何给定数据集中是否有用取决于每个实现、文档的相关程度以及响应时间的重要性。 Couchbase 为您提供了调整视图更新以满足您的要求的选项。
另一个原因是您可以在每个设计文档的基础上控制自动化 index update triggers,因此您可以比其他视图更定期地更新一些视图。
您可能会对 Couchbase View Engine Internals 上的 wiki 页面感兴趣,因为它很好地解释了设计文档的概念,并提供了一些关于视图引擎如何将任务委派给设计文档的进一步见解。