CosmosDB MongoDB查询速度慢 [英] Slow CosmosDB Mongodb Query

查看:32
本文介绍了CosmosDB MongoDB查询速度慢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用MongoDB API访问Azure上的CosmosDb。我收集了几千份文件。

它们的形状如下:

{
    "_id" : ObjectId("5b4f574ac2100c890805a7d8"),
    "id" : 12,
    "name" : "Spotted Owl",
    "overview" : "Some Overview text",
    "family" : "Barn Owls, Typical Owls (Tytonidae & Strigidae)",
    "latinName" : "Strix occidentalis"
}

我需要在$In查询中使用可能大量的"id"来查询文档。查询很简单,

// The "$in" list can be 1000 items long.
db.MyCollection.find({"id": {$in: [1,2,3,4,5,6...]}})

我有一个非唯一索引(可能应该是唯一的):

{
     "id" : 1
}

结果是包含1000个项目的查询需要20秒或更长时间才能返回。如果我只使用以下命令获取所有文档:

db.MyCollection.find({});

返回结果所需时间不到一秒。

此外,如果我对本地原生Mongo实例运行相同的测试,两个查询都会在不到一秒的时间内返回。

我在Azure/CosmosDb端遗漏了什么可能导致所有这些减速的因素?

推荐答案

Azure Cosmos DB是有速率限制的(请参阅https://docs.microsoft.com/en-us/azure/cosmos-db/set-throughput),因此如果您正在执行某种大型查询,并且将RU/s速率设置得非常低,则从CosmosDB获得的结果将非常慢。

尝试更改RU/s速率并检查性能是否变化。

希望这对您有帮助。

这篇关于CosmosDB MongoDB查询速度慢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆