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

生成CouchDB视图需要多长时间?,couchdb,Couchdb,我在几个地方看到过它,第一次在couchDB中引用它时,它需要一段时间才能生成一个视图,但是我没有找到它需要多长时间的任何估计。更具体地说,我正在尝试测试我创建的视图,加载它需要很长时间,以至于我无法判断是我把视图搞砸了,还是我太没有耐心让视图完成生成。视图的映射功能非常简单: function(doc){ emit(doc.name, null); } 我知道所有文档都有一个名称字段,因为我在导入它们之前做了一些验证,并且没有reduce函数。数据库中大约有11000个文档,我基本上想按

我在几个地方看到过它,第一次在couchDB中引用它时,它需要一段时间才能生成一个视图,但是我没有找到它需要多长时间的任何估计。更具体地说,我正在尝试测试我创建的视图,加载它需要很长时间,以至于我无法判断是我把视图搞砸了,还是我太没有耐心让视图完成生成。视图的映射功能非常简单:

function(doc){
  emit(doc.name, null);
}
我知道所有文档都有一个名称字段,因为我在导入它们之前做了一些验证,并且没有reduce函数。数据库中大约有11000个文档,我基本上想按名称对它们进行排序


我昨晚在futon导航到视图页面,让它运行了大约30分钟,但没有看到任何结果。这似乎很奇怪,它甚至需要那么长的时间,因为当上面的函数用于临时视图时,结果会相对较快地显示出来。在CouchDB中生成视图需要这么长时间吗?如果没有,什么会导致这样的情况?

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

function(key, values, rereduce){

}
请注意,它实际上并没有返回任何内容。在没有返回值的情况下,CouchDB显然在一次又一次地运行map/reduce循环,并且从未真正停止过。从视图中删除reduce函数修复了该问题


为了回答最初的问题,没有花很长时间就产生了这个观点。在我的电脑上花了大约20秒

Futon有一个tasks视图,如果其running.jchris刚刚提交了一个更改,在默认视图服务器中使用json2.js而不是json.js,那么您可以在其中看到用于生成视图数据的任务。这意味着,如果您使用带有优化的C JSON解析器的较新版本的spidermonkey,则将使用它,并且根据您的文档大小,视图生成应至少加倍,可能加倍。