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 个维度的矢量编制索引。
- 索引仅适用于每个路径的一个矢量。
- 每个矢量路径只能创建一个索引。
HNSW
和DiskANN
在 M40 层及更高层上可用。
群集和分片限制
群集层
- 最大值:每个物理分片 M200 / 64 个 vCore / 256 GiB RAM。 请联系我们的团队以获取更高层级。
物理分片
- 最大值为 10。 请联系我们的团队以获取更多分片。
集合限制
- 每个群集的集合数:1,000
- 未分片集合大小:4 TiB
请联系我们的团队,以获取更高层次的支持。
次要区域
- 最大值:1 个次要区域。 请联系我们的团队以获取更多区域。
免费层限制
升级到付费层级可以克服以下限制
- 最大存储大小:32 GiB。
- 不支持备份/还原(在 M25+ 中可用)
- 不支持高可用性(HA)(在 M30+ 中可用)
- 不支持 HNSW 矢量索引(在 M40+ 中可用)
- 不支持诊断日志记录(在 M40+ 中可用)
- 不提供服务级别协议(要求启用 HA)
- 免费层群集在 60 天的不活动状态后暂停,其中没有与群集的连接。
复制和 HA(高可用性)限制
跨区域复制
- 主要群集和副本群集上的以下配置相同,不能在副本群集上更改:
- 存储和分片计数
- 用户帐户
- 副本群集上不提供以下功能:
- 时间点还原
- 高可用性 (HA)
- 跨区域复制在具有可突发计算的群集或免费层群集上不可用。
其他限制
门户 Mongo Shell 使用情况
- 门户 Mongo Shell 可在 24 小时内使用 120 分钟。