gpt4 book ai didi

CouchDb - 一个具有多个 View 的设计文档与多个具有分割 View 的设计文档

转载 作者:行者123 更新时间:2023-12-02 12:08:59 25 4
gpt4 key购买 nike

我正在尝试找出两者之间的权衡。

似乎使用具有多个 View 的一个设计文档可以快速更新,因为在索引时,每个文档都会一次性传递到每个 View 中。

但是,一个权衡是,如果我更改设计文档中的 View ,则所有 View 都需要更新。

这看起来正确吗?还有其他人可以补充这种理解吗?

最佳答案

更多详细信息可以查看here :

View 被组织成设计文档。理论上,您可以在数据库中拥有任意数量的设计文档,并在单个设计文档中拥有任意数量的 View 。理论上,每个 View 可以为每个文档发出任意多个 B 树节点,并且您的 Map/Reduce 代码可以任意复杂。但请记住:

  • 拥有许多 View 会降低性能,因为每个 View 都必须在每次文档更改时运行
  • 同一设计文档中的所有 View 都一起索引;更改、添加或删除任何 View 都需要重新索引所有 View

  • View 中每个文档有许多发射会降低性能(但比将每个发射放在自己的 View 中性能稍高)

  • 复杂的映射和归约代码会降低性能

  • 发出 null 以外的值会降低性能
  • 使用除 _sum、_count、_stats 内置函数之外的reduce 代码会降低性能

顺便说一句,CouchDB 和 Cloudant 在 View 更新的确切时间上有所不同:

  • CouchDB 延迟更新 View ,即在查询 View 时更新 View 。这可能会导致不常访问的 View 等待时间过长。
  • Cloudant 在后台异步更新 View 。这意味着不再访问的 View 仍在消耗系统资源。

关于CouchDb - 一个具有多个 View 的设计文档与多个具有分割 View 的设计文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40750008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com