CouchDB视图 - 列出功能性能命中?

时间:2010-09-03 14:13:13

标签: couchdb

许多人都知道来自couchdb视图的响应如下

{"rows":[
  {"key":"1","value":{"Col1":"Some Value"}},
  {"key":"2","value":{"Col1":"Another Value"}},
]}

好吧,我想整理一下

[{"key":"1","value":{"Col1":"Some Value"}},
  {"key":"2","value":{"Col1":"Another Value"}}]

我正在考虑使用“列表函数”来整理响应,但我想知道做这样的事情的潜在性能开销?值得吗?或者我应该考虑更改所有代码来处理不同的响应吗?

由于 达莫

2 个答案:

答案 0 :(得分:5)

列表函数在单独的进程(couchjs)中运行,该进程通过标准i / o连接到couchdb。数据被串行化到JSON或从JSON进行通信以与该通道进行通信。换句话说,您的所有行都将被序列化并发送到couchjs;并且couchjs会将结果发回。

因此,列表函数将添加(至少)O(n)延迟以接收结果。对于小(我说少于10,000个文件,但这取决于你的需要)查看结果,这是非常值得的。对于非常大量的行,您可能会发现升级客户端的好处。

答案 1 :(得分:0)

我使用JSON_XS格式化结果,然后使用curl,awk和其他unix实用程序重新格式化结果。在这种情况下,漂亮打印JSON没有帮助:

curl -s -S --compressed -X GET 'your_view_url' | sed -e '/^{"rows"://' -e '/^]}/]/'