加速我的 cloudant 查询
Speeding up my cloudant query
我想知道是否有人可以就我下面的 cloudant 查询提供一些建议。现在对包含 50,000 个文档的数据库执行需要超过 20 秒的时间 - 我怀疑我可以获得比这更快的速度。
查询的目的是查找属性 "searchCode" 等于特定值加上特定 ID 的进一步列表的所有文档。
searchCode 和 _id 都已编入索引 - 知道为什么我的查询会花费这么长时间/我可以做些什么来加快速度吗?
mydb.find({selector: {"$or":[{"searchCode": searchCode},{"_id":{"$in":idList}}]}}, function (err, result) {
if(!err){
fulfill(result.docs);
}
else{
console.error(err);
}
});
谢谢,
詹姆斯
您可以尝试对查询进行单独调用
- 在 searchCode = 'some value'
处找到我的文档
- 查找 ID 与 ID 列表匹配的文档
第一个可以通过 find
调用和如下查询来实现:
{ selector: {"searchCode": searchCode} }
第二个可以通过点击数据库的 _all_docs 端点来实现,将 ID 列表作为 keys
参数传递,例如
GET /db/_all_docs?keys=["a","b","c"]
您可能会发现 运行 并行请求和合并结果可为您提供更好的性能。
我想知道是否有人可以就我下面的 cloudant 查询提供一些建议。现在对包含 50,000 个文档的数据库执行需要超过 20 秒的时间 - 我怀疑我可以获得比这更快的速度。
查询的目的是查找属性 "searchCode" 等于特定值加上特定 ID 的进一步列表的所有文档。
searchCode 和 _id 都已编入索引 - 知道为什么我的查询会花费这么长时间/我可以做些什么来加快速度吗?
mydb.find({selector: {"$or":[{"searchCode": searchCode},{"_id":{"$in":idList}}]}}, function (err, result) {
if(!err){
fulfill(result.docs);
}
else{
console.error(err);
}
});
谢谢, 詹姆斯
您可以尝试对查询进行单独调用
- 在 searchCode = 'some value' 处找到我的文档
- 查找 ID 与 ID 列表匹配的文档
第一个可以通过 find
调用和如下查询来实现:
{ selector: {"searchCode": searchCode} }
第二个可以通过点击数据库的 _all_docs 端点来实现,将 ID 列表作为 keys
参数传递,例如
GET /db/_all_docs?keys=["a","b","c"]
您可能会发现 运行 并行请求和合并结果可为您提供更好的性能。