Node.js 加快我的cloudant查询
我想知道是否有人可以为我下面的cloudant查询提供一些建议。现在对一个包含50000个文档的DB执行需要20秒以上的时间——我想我可能会获得比这更好的速度 查询的目的是查找属性为“searchCode”的所有文档,该属性等于一个特定值加上另一个特定ID列表 搜索代码和_id都被编入了索引-你知道为什么我的查询会花费这么长时间吗/我能做些什么来加速它吗Node.js 加快我的cloudant查询,node.js,couchdb,cloudant,database-tuning,Node.js,Couchdb,Cloudant,Database Tuning,我想知道是否有人可以为我下面的cloudant查询提供一些建议。现在对一个包含50000个文档的DB执行需要20秒以上的时间——我想我可能会获得比这更好的速度 查询的目的是查找属性为“searchCode”的所有文档,该属性等于一个特定值加上另一个特定ID列表 搜索代码和_id都被编入了索引-你知道为什么我的查询会花费这么长时间吗/我能做些什么来加速它吗 mydb.find({selector: {"$or":[{"searchCode": searchCode},{"_id":{"$in":i
mydb.find({selector: {"$or":[{"searchCode": searchCode},{"_id":{"$in":idList}}]}}, function (err, result) {
if(!err){
fulfill(result.docs);
}
else{
console.error(err);
}
});
谢谢,
James您可以尝试分别调用查询
- 查找搜索代码为'some value'的文档
- 查找ID与ID列表匹配的文档
find
调用和如下查询实现:
{ selector: {"searchCode": searchCode} }
第二种方法是点击数据库的端点,将ID列表作为键
参数传入,例如
GET /db/_all_docs?keys=["a","b","c"]
您可能会发现并行运行这两个请求并合并结果会提供更好的性能。谢谢Glynn-我已经将两者分开,我遇到的问题似乎是调用的ID部分-searchcode查询几乎立即返回,但ID调用仍需要15秒以上-我将对此进行调查Furthi Glynn-我实际上按照您的建议使用了modules.list方法,该方法必须调用GET/db/_all_docs,但是我现在遇到了一个问题,作为查询参数,我传入的密钥数量超过了限制。有什么想法吗?我看到一些文档建议您可以通过在coach\u db上发布一篇帖子来检索所有的\u文档,以提交大量密钥-在cloudant上也是这样吗?我解决了这个问题-感谢您正确地运行它们,因为单独的查询效率更高。我最终还是按照我的建议,将所有带有密钥的文档发布到/db/_,这对我的一大组密钥非常有用