我的 couchdb 视图正在无缘无故地重建

Posted

技术标签:

【中文标题】我的 couchdb 视图正在无缘无故地重建【英文标题】:My couchdb view is rebuilding for no reason 【发布时间】:2014-07-07 14:09:51 【问题描述】:

我有一个 couchdb,其数据库包含约 20M 文档。构建一个视图大约需要 12 小时。

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

闲置 2 天后,我添加了另一个视图。构建花费了更长的时间,而且它是一个“不错的”,不是必需的,所以我在完成约 60% 后将其杀死(重新启动了 Windows 服务)。

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

真的很沮丧。

附加信息:磁盘已满 65GB(1TB 磁盘;本地)

【问题讨论】:

【参考方案1】:

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

来自wiki

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

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

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

这里是another helpful answer,它阐明了如何有效地使用 couchdb 设计文档和视图。

【讨论】:

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

以上是关于我的 couchdb 视图正在无缘无故地重建的主要内容,如果未能解决你的问题,请参考以下文章

RoR - 我的一个控制器中的视图无缘无故地不显示应用程序布局

CouchDB 多级视图地图功能?

如何在 CouchDB 中创建 Erlang 视图

Flutter Bloc 不断重建小部件而不改变状态

Flutter Provider-重建列表项而不是列表视图

来自 Ektorp 的 CouchDB Map/Reduce 视图查询