View 我的couchdb视图正在毫无理由地重建

View 我的couchdb视图正在毫无理由地重建,view,indexing,couchdb,View,Indexing,Couchdb,我有一个couchdb,它的数据库包含大约2000万个文档。构建单个视图需要约12小时 我已成功保存了6个视图。他们很快返回结果。起初 闲置两天后,我添加了另一个视图。它花费了更长的时间来构建,这是一个“很好的拥有”,而不是一个要求,所以我在完成约60%后将其杀死(重新启动windows服务) 我的其他视图现在开始在被访问时重新构建索引 真的很沮丧 其他信息:磁盘已满(1TB磁盘;本地)65GB以内。很抱歉,您别无选择,只能在此处等待视图重建。然而,我将试图解释为什么会发生这种情况。它不会解决你

我有一个couchdb,它的数据库包含大约2000万个文档。构建单个视图需要约12小时

我已成功保存了6个视图。他们很快返回结果。起初

闲置两天后,我添加了另一个视图。它花费了更长的时间来构建,这是一个“很好的拥有”,而不是一个要求,所以我在完成约60%后将其杀死(重新启动windows服务)

我的其他视图现在开始在被访问时重新构建索引

真的很沮丧


其他信息:磁盘已满(1TB磁盘;本地)65GB以内。

很抱歉,您别无选择,只能在此处等待视图重建。然而,我将试图解释为什么会发生这种情况。它不会解决你的问题,但也许它会帮助你了解正在发生的事情,以及未来如何预防

CouchDB视图索引文件名基于设计文档的内容(而不是其名称、ID或版本)。这意味着具有相同视图代码的两个设计文档将共享视图索引文件

接下来,如果通过添加新视图或更新现有视图来更改内容,couchdb将重建索引

因此,我认为最明显的解决方案是在新的设计文档中添加新视图。它将防止对现有视图重新编制索引,而新视图将花费任何时间以任何方式编制索引


以下是如何有效使用couchdb设计文档和视图的说明。

这也解释了为什么浏览器实用程序状态页上的“对象”列中只显示设计文档,以及为什么在同一设计文档下并行运行多个索引速度如此之慢。