对于所有具有特定内容的文档,type
我的应用程序中有一个查询,它只选择最后一个文档的一个字段。我按日期映射这些文档,因此将降序查询限制为 1 肯定可以解决问题。我困扰的问题是这个视图会缓存所有这种类型的文档,占用明显的冗余空间。
所以我的问题是:
- 向该视图添加一个减少到最后一个文档的reduce函数是否会为我节省任何空间,或者视图仍然必须存储所有涉及的文档?
- 如果没有,还有其他节省空间的策略吗?
http://127.0.0.1:5984/YOURDB/_all_docs?start_key="<TYPE>_<CURRENT_TIME>"&descending=true&limit=1
:map
你所能。不发出任何值,map 将存储文档的密钥和 id/ver。用于include_doc
在查询时检索文档。对我来说,这似乎是 CouchDB 的想法:通过缓存查询来“浪费”空间,因此如果数据不经常更改,它们可以快速回答。也许如果您非常关心浪费空间,那么您的答案不是 CouchDB?
我的 couchdb 设置具有独立 RAID 驱动器上的数据和索引。地图是用 erlang 编写的,我发现它比 javascript 快 8 倍,而且地图当然返回 null。我将密钥保持在较小的范围内,并且在许多设计文档中拆分了我的视图,并且我使我的数据保持非常平坦,从而提高了序列化性能。