本文档概述了 Azure DocumentDB 群集和作的当前硬和软限制。 了解查询执行限制、索引约束、群集配置和身份验证边界,这些边界可帮助你有效地规划和优化 Azure DocumentDB 部署。
查询和执行限制
以下限制适用于 Azure DocumentDB 群集中的查询作和命令执行。
MongoDB 执行限制
最大事务生存期:30 秒。
游标生存期:10 分钟。 注意:如果游标超出其生存期,则可能会发生 cursorNotFound 错误。
默认查询执行限制:120 秒。 可以在相应的 MongoDB 驱动程序中,使用
maxTimeMS为每个查询覆盖此限制。
Example
db.collection.find({ field: "value" }).maxTimeMS(5000)
最大 MongoDB 查询大小
MongoDB 查询的最大内存大小取决于层级。 例如,对于 M80,查询内存大小限制约为 150 MiB。
在分片群集中,如果查询跨节点拉取数据,则该数据大小的限制为 1 GB。
索引限制
Azure DocumentDB 强制实施各种索引限制,以确保不同索引类型和作的最佳性能和资源利用率。
常规索引限制
复合索引字段的最大数目:32。
_id字段值的最大大小:2 KB。索引路径的最大大小:256B。
默认最大值:64。
- 每个集合最多可配置 300 个索引。
排序在内存中完成,不会向下推送到索引。
索引定义上嵌入对象/数组的最大嵌套级别:6。
单个索引生成可以在同一集合上进行。
不同集合上的同时索引生成数是可配置的(默认值:2)。
使用
currentOp命令可查看长时间运行的索引生成的进度。唯一索引生成在前台完成,并在集合中阻止写入。
通配符索引限制
- 对于通配符索引,如果索引字段是一系列数组,则整个嵌入数组将视为一个值而不是遍历其内容。
地理空间索引限制
不支持 BigPolygons。
复合索引不支持地理空间索引。
$geoWithin查询不支持带孔的多边形。key聚合阶段中,$geoNear字段是必需的。在
$near、$nearSphere查询运算符中和在$geoNear聚合阶段建议使用索引,但这不是硬性要求。
文本索引限制
一个集合上只能定义一个文本索引。
仅支持简单文本搜索;不支持高级搜索功能,如正则表达式搜索。
不支持将
hint()与采用$text表达式的查询结合使用。排序操作无法使用文本索引的顺序。
不支持中文的标记化。
不支持不区分大小写的标记化。
矢量搜索限制
为最大大小为 2,000 个维度的矢量编制索引。
索引仅适用于每个路径的一个矢量。
每个矢量路径只能创建一个索引。
HNSW和DiskANN可用于 M30 和更高的集群层级。
群集和分片限制
Azure DocumentDB 对群集配置、物理分片和集合管理施加了特定的限制,以确保最佳性能和资源分配。
群集层
- 最大值:每个物理分片 M200/64个虚拟核心/256 GiB RAM。
物理分片
- 最大值为 10。
集合限制
每个群集的集合数:1,000
未分片集合大小:32 TiB
次要区域
- 最大值:一个次要区域。
免费层级限制
升级到付费层级可以克服以下限制
最大存储大小:32 GiB。
不支持备份/还原(在 M25+ 中可用)
不支持高可用性(HA)(在 M30+ 中可用)
目前不支持分层可导航小世界(HNSW)矢量索引(在 M40+中可用)
不支持诊断日志功能(仅在付费版本中可用)
不支持Microsoft Entra ID
不提供服务级别协议(要求启用 HA)
免费层群集将在 60 天不活动且没有与群集建立连接后暂停。
不支持从付费层帐户过渡到免费层帐户。
层级限制
M10、M20 和 M25 服务层级具有以下限制:
仅支持一个物理分片(节点)。
专为开发/测试用例而设计;不支持区域内高可用性 (HA)。
支持的存储大小包括 32 GiB、64 GiB 和 128 GiB。
一旦群集缩放到 M30 层或更高层,就无法再缩小到 M10、M20 或 M25 计算层。
复制和区域内高可用性限制
Azure DocumentDB 提供内置的复制和高可用性(HA)功能,具有特定的限制,以确保不同部署方案的数据一致性和性能。
跨区域和同一区域复制
主要群集和副本群集上的以下配置相同,不能在副本群集上更改:
存储和物理分片计数
用户帐户
副本群集上不提供以下功能:
时间点还原 (PITR)
区域内高可用性 (HA)
身份验证和访问控制(基于角色的访问控制)
Azure DocumentDB 强制实施身份验证和访问控制限制,以跨用户帐户和角色维护安全性和管理资源分配。
- 每个群集最多可以创建 100 个用户/角色。
Microsoft Entra ID 身份验证
Microsoft Entra ID 身份验证功能具有以下当前限制:
此功能不支持Microsoft Entra ID 组。
禁用本机 DocumentDB 身份验证方法后,Azure 门户的 快速入门不支持 MongoDB Shell。
- 可以在 Azure 门户之外 使用 MongoDB Shell 与 Microsoft Entra ID 进行身份验证。
本机 DocumentDB 辅助用户
本机辅助用户功能具有以下限制:
该
Updateuser命令现在仅支持密码更新,并且无法修改其他对象字段。不支持该
Roleinfo命令。 或者,也可使用usersInfo。不支持向特定数据库或集合分配角色,仅支持群集级别。
其他限制
Azure DocumentDB 具有更多对群集管理和功能各个方面的操作和功能特定限制。
门户 Mongo shell 使用情况
- 门户 Mongo shell 可在 24 小时内使用 120 分钟。
文档大小和深度
每个文档的最大二进制 JavaScript 对象表示法(BSON)文档大小:16 MB。
不会强制实施固定的最大嵌套深度限制。
- 深度嵌套的文档结构可能会影响查询和读取性能,增加处理开销,并减少可维护性。
批次限制
支持两种批处理操作类型(写入操作和批量操作)。
- 批处理是指对服务器的 单个请求 。
每个批处理作的最大写入次数: 25,000 次写入。
超过 25,000 次写入的批处理操作将 失败。
批处理操作的总数量没有限制。