Azure Cosmos DB for MongoDB vCore 中的服务限制

本文档概述了 Azure Cosmos DB for MongoDB vCore 的当前硬限制和软限制。 其中的许多限制是暂时性的,随着服务不断改进,会随着时间推移而演变。 如果其中任一限制对组织构成问题,请联系我们的团队以获取帮助。

查询和执行限制

MongoDB 执行限制

  • 最大事务生存期:30 秒。
  • 游标生存期:10 分钟。 注意:如果游标超出其生存期,则可能会发生 cursorNotFound 错误。
  • 默认查询执行限制:120 秒。 在相应的 MongoDB 驱动程序中可能会按查询使用 maxTimeMS 替代此限制。

示例:

db.collection.find({ field: "value" }).maxTimeMS(5000)

最大 MongoDB 查询大小

  • MongoDB 查询的最大内存大小取决于层级。 例如,对于 M80,查询内存大小限制约为 150 MiB。
  • 在分片群集中,如果查询跨节点拉取数据,则该数据大小的限制为 1 GB。

索引编制限制

常规索引编制限制

  • 复合索引字段的最大数目:32。
  • _id 字段值的最大大小:2 KB。
  • 索引路径的最大大小:256B。
  • 默认最大值:64。
    • 每个集合最多可配置 300 个索引。
  • 排序在内存中完成,不会向下推送到索引。
  • 索引定义上嵌入对象/数组的最大嵌套级别:6。
  • 单个索引生成可以在同一集合上进行。
  • 不同集合上的同时索引生成数是可配置的(默认值:2)。
  • 使用 currentOp 命令可查看长时间运行的索引生成的进度。
  • 唯一索引生成在前台完成,并在集合中阻止写入。

通配符索引编制限制

  • 对于通配符索引,如果索引字段是一系列数组,则整个嵌入数组将视为一个值而不是遍历其内容。

地理空间索引编制限制

  • 不支持 BigPolygons。
  • 复合索引不支持地理空间索引。
  • $geoWithin 查询不支持带孔的多边形。
  • $geoNear 聚合阶段中需要 key 字段。
  • $near$nearSphere 查询运算符中和在 $geoNear 聚合阶段建议使用索引,但这不是硬性要求。

文本索引限制

  • 一个集合上只能定义一个文本索引。
  • 仅支持简单文本搜索;不支持高级搜索功能,如正则表达式搜索。
  • 不支持将 hint() 与采用 $text 表达式的查询结合使用。
  • 排序操作无法使用文本索引的顺序。
  • 尚不支持针对中文的词汇切分。
  • 尚不支持不区分大小写的词汇切分。

矢量搜索限制

  • 为最大大小为 2,000 个维度的矢量编制索引。
  • 索引仅适用于每个路径的一个矢量。
  • 每个矢量路径只能创建一个索引。
  • HNSWDiskANN 在 M40 层及更高层上可用。

群集和分片限制

群集层

  • 最大值:每个物理分片 M200 / 64 个 vCore / 256 GiB RAM。 请联系我们的团队以获取更高层级。

物理分片

集合限制

  • 每个群集的集合数:1,000
  • 未分片集合大小:4 TiB

联系我们的团队,以获取更高层次的支持。

次要区域

免费层限制

升级到付费层级可以克服以下限制

  • 最大存储大小:32 GiB。
  • 不支持备份/还原(在 M25+ 中可用)
  • 不支持高可用性(HA)(在 M30+ 中可用)
  • 不支持 HNSW 矢量索引(在 M40+ 中可用)
  • 不支持诊断日志记录(在 M40+ 中可用)
  • 不提供服务级别协议(要求启用 HA)
  • 免费层群集在 60 天的不活动状态后暂停,其中没有与群集的连接。

复制和 HA(高可用性)限制

跨区域复制

  • 主要群集和副本群集上的以下配置相同,不能在副本群集上更改:
    • 存储和分片计数
    • 用户帐户
  • 副本群集上不提供以下功能:
    • 时间点还原
    • 高可用性 (HA)
  • 跨区域复制在具有可突发计算的群集或免费层群集上不可用。

其他限制

门户 Mongo Shell 使用情况

  • 门户 Mongo Shell 可在 24 小时内使用 120 分钟。

后续步骤