CouchDB:使用includeDocs或从视图返回doc更有效吗?

时间:2015-09-23 17:33:11

标签: performance couchdb

我是CouchDB的新手。我们的数据库中将有数百万个文档。我想知道:从视图中返回'doc'对象,或仅返回'doc.id',并使用'& include_docs = true'更高效吗?

我猜测从视图返回'doc.id'将占用视图索引的更少磁盘空间,但可能需要添加对数据库的调用才能获取整个文档。在这种情况下,它是更快速(返回'doc')或减少磁盘空间使用(返回'doc.id')之间的决定。

这是正确的假设吗?

1 个答案:

答案 0 :(得分:2)

来自couchDB wiki https://wiki.apache.org/couchdb/HTTP_view_API

  

注意:include_docs将导致每个返回的视图结果行进行单个文档查找。如果您处于高负载状态或每个请求返回大量行,这会给存储系统带来很大的压力。如果您对此感到担心,可以在每一行中发出完整的文档;这将增加视图索引时间和空间要求,但会使视图读取速度最快。

所以我说你的假设是正确的,下一步要考虑的是你是否真的会使用这些视图来获取所有匹配的文件,或者你当时只看一些匹配的文件?这很有趣,因为couchDB将构建整个视图并在整个更新过程中维护它,即使您只是查看它的一小部分。

要考虑的另一件事是文件有多大?如果文件很小,那么它们的发射几乎没有差异,但如果它们很大,就会有很大的差异。