CosmosDB Mongodb 查询速度慢

2024-01-05

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

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

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CosmosDB Mongodb 查询速度慢 的相关文章

  • DocumentQueryException:查询表达式无效

    我需要查询 cosmosdb 中的集合 我的实体是 public class Tenant public string Id get set public string ClientId get set public string Clie
  • 如何在 Spring Data Azure Cosmos DB 中编写动态 sql

    我们计划使用 Spring Data Azure Cosmos DB v3 我看到我们扩展了 CosmosRepository 接口并实现了我们的存储库并应用了 Query 注释 Query value select from c wher
  • Azure DocumentDB 性能缓慢

    我目前面临 Azure DocumentDB 的响应时间相当慢 第一次尝试 集合中有 31 个对象 我将获取这些对象并将其返回给调用者 我正在使用的代码是这样的 public async Task
  • 使用 MongoDB API 连接到 CosmosDB 时出现超时错误

    我目前正在通过以下教程学习如何通过 mongodb API 使用 Azure cosmos db https learn microsoft com en us azure cosmos db tutorial develop mongod
  • 保存和测试分区集合的存储过程/触发器(可能是用户定义的函数)

    尝试将修改保存到分区集合中创建的存储过程时 我收到以下错误 保存脚本失败 以下是 Azure 门户中的详细信息 操作名称 无法保存脚本 时间戳 2017 年 2 月 17 日星期五 08 46 32 GMT 0500 东部标准时间 活动发起
  • 使 Azure DocumentDB 不返回服务字段

    我在节点应用程序中为 Azure DocumentDB 使用类似 SQL 的语法 这是方法代码 client queryDocuments collection self SELECT FROM root toArray function
  • RU/m 去哪儿了?

    这曾经是 CosmosDb 的一项功能 用于提供每分钟请求单位 以及每秒请求单位 但是该选项似乎已从门户中消失 并且所有在线文档均已删除 谢谢 奥利弗 RU m 已死 刚刚收到微软的回复 我们收到了参与预览计划的客户的大量反馈 从 2017
  • 对 Azure Cosmos DB 中的嵌套字段建立索引

    我想在 Azure Cosmos DB 文档中的嵌套字段上创建索引 例如 如果我有以下架构 id 1 nested mode mode1 text nice text 我想在该字段上创建索引nested mode 如何才能做到这一点 Ans
  • Azure Functions 和 DocumentDB 触发器

    是否可以指定 DocumentDB 在写入 DocumentDB 时触发触发器 我有一个 Azure 函数 可以从服务总线队列中提取 JSON 消息并将它们放入 DocumentDB 中 如下所示 using System using Sy
  • 从 Function 应用访问虚拟网络中的 Cosmos DB

    对这么长的帖子表示歉意 但我已经在这个问题上工作了几天 但似乎找不到解决方案 情况 我想通过将 Azure 中的 Cosmos DB 放置在虚拟网络 VNet 中来限制对它的访问 并且只允许通过 Function 应用进行访问 Approa
  • 使用 Mongo API 在 Cosmos DB 中的共享吞吐量集合上创建唯一索引

    我尝试按照以下说明进行操作微软文档 https learn microsoft com en gb azure cosmos db mongodb indexing creating unique indexes在分区集合上创建唯一索引 d
  • DocumentDB 输入绑定的 sqlQuery 与调制符号导致函数失败

    我在 Azure Functions 上使用 DocumentDB 输入绑定 今天 我将以下查询指定为 sqlQuery SELECT c id c created at FROM c WHERE epoch c created at ep
  • LinkedAuthorizationFailed 在 PowerShell 中意味着什么?

    我正在尝试使用 PowerShell 在 cosmos db 中添加虚拟网络规则 VNETS 存在于不同的租户中 我对存储帐户做了同样的事情 效果很好 我收到以下错误 有人可以给我一些关于我哪里出错的指示吗 是否可以在 Cosmos 数据库
  • 使用托管身份将 Function App 连接到 CosmosDB

    我正在尝试在函数应用程序中编写一个函数来操作 CosmosDB 中的数据 如果我将读写键放入环境变量中 我就能正常工作 为了使其更加强大 我希望它能够作为托管身份应用程序运行 该应用程序在 Cosmos DB 上具有 DocumentDB
  • Cosmos DB 中的向后分页

    我正在尝试在我的 Vue 前端上使用 c 和 cosmos 实现一个简单的分页系统 但我不确定当用户想要返回时实现分页的最佳方法 为了前进 我使用延续令牌 所以 Cosmos 知道我已经到了哪里 但我不太确定向后工作的最佳方法 或者如果用户
  • 在不知道对象键的情况下进行 Cosmos DB 查询

    单个文档示例 id xxxxxx properties a prop type names value John b prop type score value 5 5 c prop type names value Steve 问题 如何
  • DocumentClientException“请求大小太大”

    我创建了 JSON byte length 太大 当我尝试使用 api java 时 documentClient createDocument getTodoCollection getSelfLink document null fal
  • Azure COSMOS DB 如何查询数组中的内容

    如何进行查询以获取文档数组 roles 中包含某些内容的文档 我想获取以下文档 其中 Trainer 是数组中的元素 enabled true profilePicture null roles Trainer Client SELECT
  • DocumentDB 上的并发

    这是 DocumentDB 上的一个新手问题 我们希望在我们的应用程序中使用 DocumentDB 我们有多个用户更改存储在 DocumentDB 中的数据 我们如何确保一个用户不会覆盖另一用户的更改 文档数据库有乐观并发并有一个ETag在
  • 无法创建集合信息 - 尝试在本地测试 Cosmos DB 触发器时出错

    我正在测试开发一个 Azure 函数来读取 Cosmos DB 数据库的更改源 我已经从 Azure 门户创建了这样的函数 但我想使用 VS 或 VS Code 来执行此操作 我使用 Azure Function Core Tools v2

随机推荐