azure-cosmosdb - 缓慢的 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://learn.microsoft.com/en-us/azure/cosmos-db/set-throughput),因此如果您正在执行某种大型查询并且将 RU/s 速率设置得非常低,您将从 CosmosDB 获得的结果非常慢。

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

希望这对您有所帮助。

https://stackoverflow.com/questions/54472917/

相关文章:

java - Spring 启动 : java. lang.AbstractMethodError

javascript - 如何在 React Native 中创建六边形 View

php - Laravel 和 package spatie/laravel-translatabl

typescript - 我想在nestjs中实现自定义缓存

php - 如何在登录后自定义重定向

r - 编辑 stargazer 源代码——保存的编辑不会呈现为 pdf

ruby-on-rails - NoMethodError:未定义字符串的方法 'permit'

python-3.x - 在用户控制的目录中生成 python 字节码缓存

pandas - 重新采样 TimeSeries 时无法导入名称 'NaT'

webpack - 如何从 CLI 为 Webpack 的 devServer.contentBas