CouchDB 视图 - 列表功能性能受到影响?
Posted
技术标签:
【中文标题】CouchDB 视图 - 列表功能性能受到影响?【英文标题】:CouchDB Views - List function performance hit? 【发布时间】:2010-09-03 14:13:13 【问题描述】:很多人都知道来自 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"]
我正在考虑使用“列表函数”来整理响应,但我想知道执行此类操作的潜在性能开销?值得吗...还是我应该考虑更改所有代码以处理不同的响应?
谢谢 达摩
【问题讨论】:
【参考方案1】:列表函数在一个单独的进程 (couchjs
) 中运行,该进程通过标准 i/o 连接到 couchdb。数据被序列化到 JSON 或从 JSON 序列化以与此通道进行通信。换句话说,您的所有行都将被序列化并发送到couchjs
; couchjs
会将结果发回。
因此,列表函数将增加(至少)O(n) 延迟来接收您的结果。对于小型(我说少于 10,000 个文档,但这取决于您的需要)查看结果,非常值得方便。对于非常多的行,升级客户端可能会给您带来好处。
【讨论】:
我当时的想法。不理想,因为有时您将传递“文档”而其他人传递“文档视图”。所以你的代码需要同时处理这两者。我决定最后使用列表函数将所有值推送到数组中,然后发送 JSOn 响应。感谢您的帮助。 列表函数可以使用provides()
返回不同的内容类型,可能基于req.query
对象中给定的参数。【参考方案2】:
我使用 JSON_XS 格式化结果,然后 curl、awk 和其他 unix 实用程序重新格式化结果。在这种情况下,漂亮地打印 JSON 并没有帮助:
curl -s -S --compressed -X GET 'your_view_url' | sed -e '/^"rows"://' -e '/^]/]/'
【讨论】:
以上是关于CouchDB 视图 - 列表功能性能受到影响?的主要内容,如果未能解决你的问题,请参考以下文章