文档菜单
文档首页
/
MongoDB 手册
/ / /

分析查询性能

本页内容

  • 识别慢查询
  • 性能概述
  • 分析慢查询
  • 进行高级查询分析

MongoDB 提供了几种方法来检查您的工作负载性能,让您了解查询性能并识别运行时间长的查询。了解查询性能有助于您构建有效的索引并确保您的应用程序高效地运行关键查询。

使用以下方法来识别在您的部署中发生的慢查询。

以下方法提供了您部署性能的概述。使用这些方法来确定是否需要解决性能问题。

方法
可用性
描述
使用Atlas性能顾问

M10+ Atlas集群

Atlas性能顾问会监控慢查询并建议新的索引以改善性能。有关更多信息,请参阅监控和改善慢查询.
检查Atlas中的持续操作

M10+ Atlas集群

您可以使用Atlas实时性能面板(RTPP)来查看当前的网络安全流量、数据库操作和硬件统计信息。
在本地检查持续操作

Atlas集群和自托管部署

使用$currentOp聚合阶段返回有关活动操作和游标的详细信息。使用$currentOp来识别可能对性能产生负面影响的长时间运行或卡住的操作。

您还可以使用top命令来获取额外的操作计数和延迟统计信息。

检查服务器指标

Atlas集群和自托管部署

对于Atlas集群,您可以通过查看集群指标来识别性能问题。

对于自托管部署,serverStatus命令提供了可以指示查询执行性能不佳和异常的指标。

查看常见查询模式

Atlas集群和自托管部署

聚合阶段 $queryStats 返回关于常见 查询形状 的信息。$queryStats 提供了关于在您的部署上运行的查询类型的整体视图。
查看索引统计信息

Atlas集群和自托管部署

聚合阶段 $indexStats 返回有关您的集合的索引以及单独索引的使用频率的信息。使用 $indexStats 来识别可以删除以提高写入性能的未使用索引。

使用这些方法来分析慢查询并确定性能不佳的原因

方法
可用性
描述
使用 Atlas 查询分析器

M10+ Atlas集群

Atlas 查询分析器显示长时间运行的操作和性能统计信息。有关更多信息,请参阅 监控查询性能。
启用数据库分析器

Atlas集群和自托管部署

启用后,数据库分析器将有关慢查询的信息存储在 system.profile 集合中。

有关更多信息,请参阅 数据库分析器。

在诊断日志中查看慢查询

Atlas集群和自托管部署

MongoDB 在诊断日志中记录超过慢操作阈值(默认为 100 毫秒)的查询。

检查诊断日志以识别问题查询并查看哪些查询可以从索引中受益。

查看 explain 结果

Atlas集群和自托管部署

查询 explain 结果显示查询计划和执行统计信息。您可以使用 explain 结果确定查询的以下信息

  • 查询执行所需的时间

  • 查询是否使用了索引

  • 为满足查询而扫描的文档和索引键的数量

要查看 explain 结果,请使用以下方法

有关 explain 结果输出的信息,请参阅 Explain 结果解释 explain 计划结果。

以下方法适用于对问题查询进行深入调查,并提供细粒度的性能洞察

方法
可用性
描述
查看计划缓存统计信息

Atlas集群和自托管部署

$planCacheStats 聚合阶段返回有关集合 计划缓存 的信息。

计划缓存包含查询计划,查询优化器使用这些计划高效地完成查询。通常,计划缓存应包含您最常运行的查询条目。

返回

查询优化