对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

分片键分析器

需要在商业Atlas部署中运行MongoDB 8.0 或更高版本的 M10+ 集群

Atlas Shard Key Advisor 可帮助您分析和评估集合的候选分片键。通过Performance Advisor访问分析器,根据集群的查询模式和工作负载特征评估分片键。该分析器通过可选的查询采样提供即时分析,以便更深入地了解写入分布。

Atlas在Performance Advisor中提供建议,帮助您确定分片决策何时可以提高集群性能:

  • 何时对副本集分片。

  • 何时移动集合。

  • 何时对未分片集合分片。

  • 何时添加更多分片。

使用 Shard Key Advisor分析这些建议的候选分片键。

您还可以从“Sharding Insights”(分片见解)页面打开“Shard Key Advisor”(分片键顾问)。在 Recommendations 卡片中,单击 Analyze Shard Keys。

选择正确的分片键对于分片集群性能至关重要。精心挑选的分片键:

  • 在各分片之间均匀分配数据。

  • 高效路由查询以尽量减少跨分片操作。

  • 支持应用程序的查询模式。

  • 随着数据的增长而扩展。

Shard Key Advisor 会分析集合的查询模式,并根据以下内容提供分析:

  • 查询路由效率。

  • 数据分布特征。

  • 键关联基数和频率。

  • 读取和写入模式。

Shard Key Advisor 提供即时分析和可选的更深入见解:

立即分析

分析器无需查询采样即可计算关键特征:

  • 关联基数:衡量候选字段中值的唯一性。

  • 单调性:标识字段值是随时间增加还是减少。

  • 频率:分析字段中值的分布。

这些指标可帮助您了解候选分片键分发数据和避免热点的情况。

可选查询采样

要更深入地了解查询模式,启用查询采样以查看:

  • 读取分布:显示查询最常访问权限的分片键键值。

  • 写入分布:显示写入最频繁的目标分片键键值。

查询采样是可选的。查看分布指标时,分析器会提示您启用它。启用后, Atlas会对针对您的集合的查询运行,并使用其他数据重新分析候选分片键。

要使用 Shard Key Advisor,您的集群必须满足以下要求:

要使用 Shard Key Advisor,请执行以下操作:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 Database 标题下的 Clusters。

会显示集群页面。

2

打开集群的Performance Advisor。

  1. 单击要分析的集群的 ... 按钮。

  2. 单击 View Performance Advisor(连接)。

显示Performance Advisor页面。

3

单击Performance Advisor导航中的 Sharding Recommendations标签页。

当Atlas识别可能受益于分片或重新分片的集合时,会显示分片建议。

4

单击推荐卡可查看其详细信息。

建议详细信息页面显示建议的分片键的指标和分析。

5

分片键顾问程序会在新的浏览器标签页中打开。

6

分析器可立即分析候选分片键,包括:

  • 关联基数:字段中值的唯一性。

  • 单调性:值随着时间的推移是增加还是减少。

  • 频率:值在字段中的分布。

这些指标可立即使用,无需查询采样。

7

要查看读取和写入分布指标:

  1. 单击分析器中的 Enable Query Sampling。

  2. 单击 Enable Sampling(连接)。

  3. 等待Atlas收集查询数据。所需时间取决于集群的查询量。

  4. 单击 Re-analyze 可查看包含读/写入分布数据的更新指标。

禁用查询采样后,分析器会提示您为分布指标启用查询采样。

采样的查询以 7 天的TTL存储在集群中。查询采样不会自动停止,因此当您不再需要它时,必须手动将其禁用。

Atlas将采样率设置为每秒 5 个样本。要详细学习;了解采样率和查询大小如何影响存储,请参阅 configureQueryAnalyzer 文档。

注意

采样率由Atlas设立,无法通过 Shard Key Advisor 进行调整。

analyzeShardKey 命令按顺序处理每个分析阶段,因此在处理大型集合时可能需要一些时间才能完成。它不会区块对集群的读取或写入。

提示

要取消长时间运行的 analyzeShardKey 操作,请使用“实时性能面板”中的 Kill Op 按钮。您必须具有 Project Real Time Performance Operator角色。

要学习;了解有关分片键和分片概念的更多信息,请参阅: