Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

分析查询性能

在此页面上

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

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

使用以下方法识别在部署中出现的慢查询。

以下方法提供了部署性能的概述。使用以下方法确定是否存在需要解决的性能问题:

方法
可用性
说明

使用 Atlas Performance Advisor

M10+ Atlas 集群

Atlas Performance Advisor 监控慢速查询并建议新索引以提高性能。 有关详细信息,请参阅监控和改进慢速查询。

检查 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 毫秒)的查询。

检查诊断日志以识别有问题的查询,并查看哪些查询可受益于索引。

查看解释结果

Atlas 集群和自托管部署

查询解释结果显示有关查询计划和执行统计信息。您可以使用解释结果,确定有关查询的以下信息:

  • 执行查询所需的时间

  • 查询是否使用索引

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

要查看解释结果,请使用以下方法:

要了解解释结果输出,请参阅解释结果解释“解释计划结果”

以下方法适用于对有问题的查询进行深入分析,并能够提供细致的性能洞察:

方法
可用性
说明

查看计划缓存统计信息

Atlas 集群和自托管部署

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

计划缓存包含查询规划器用于高效完成查询的查询计划。一般来说,计划缓存应包含最常运行查询的条目。

后退

查询优化