生成CouchDB视图需要多长时间?

时间:2010-01-29 17:34:16

标签: couchdb

我已经看到它在几个地方提到过,在第一次在couchDB中引用时生成一个视图需要一段时间,但我还没有找到任何估计应该花多长时间。更具体地说,我正在尝试测试我创建的视图,并且加载需要很长时间,我无法判断是否搞砸了视图,或者我是否太急于让视图完成生成。视图的map函数非常简单:

function(doc){
  emit(doc.name, null);
}

我知道所有文档都有一个名称字段,因为我在导入它们之前做了一些验证,并且没有reduce函数。数据库中有大约11,000个文档,我基本上想按名称对它们进行排序。

昨晚我在蒲团的导航页面导航,让它工作约30分钟而没有看到任何结果。看起来很奇怪它应该花费很长时间,因为当上述函数用于临时视图时,结果会相对快速地显示出来。是否需要很长时间才能在CouchDB中生成视图?如果没有,会导致这样的情况?

1 个答案:

答案 0 :(得分:2)

事实证明map函数没有问题,但罪魁祸首实际上是reduce函数。我使用couchapp创建了视图,默认的reduce函数如下:

function(key, values, rereduce){

}

请注意,它实际上并没有返回任何内容。没有返回值,CouchDB显然一遍又一遍地运行map / reduce循环,并且从未实际停止过。从视图中删除reduce函数可以解决问题。

回答原始问题,生成视图并不需要很长时间。在我的电脑上花了大约20秒。