为什么从 Couchbase Views 返回文档不好

Why is it bad to resturn a document from Couchbase View`s

我正在尝试进入 Couchbase 世界并学习有关视图的知识。 有几次在演示和演示中,我听说 return 整个文档从视图中看是不好的:

emit(meta.id, doc);

我的问题是为什么?我应该 return 然后我怎样才能获取文档的正确值?

这很糟糕,因为它会消耗大量资源,视图通常会更新和覆盖索引,因此如果您重复编写整个文档,将需要大量处理器时间和磁盘 I/O(连同文件系统缓存)。

因此,建议(并且效率更高)查看 return 和 doc.id,然后使用标准 get 程序来 return 整个医生

这是个坏主意,因为它实际上会适得其反。将文档写入视图意味着它将与视图索引本身一起存储在磁盘上。您为再次将文档写入磁盘(原始 key/value 文档的副本)支付 IO 价格,并在查询时再次支付读取它的费用。因为视图查询是从磁盘(或文件系统缓存)提供的,所以您永远不会利用集成缓存层来更快地检索文档。简而言之,平均而言,从视图中获取文档 ID 并通过 ID 检索文档比从视图中读取整个文档要快。对于多个文档的操作尤其如此。