Docs 菜单

Docs 主页开发应用程序MongoDB Manual

评估当前操作的性能

在此页面上

  • 使用数据库分析器评估对数据库的操作
  • 使用 db.currentOp() 评估 mongod 操作
  • 使用 explain 评估查询性能

以下各节介绍了评估运行性能的技术。

MongoDB 提供了一个数据库分析器,可显示针对数据库的每个操作的性能特征。使用分析器查找任何运行缓慢的查询或写入操作。例如,您可以使用此信息来确定要创建哪些索引。

从 MongoDB 4.2 开始,用于读/写操作的分析器条目诊断日志消息(即 mongod/mongos 日志消息)包括:

  • queryHash 帮助识别具有相同查询结构的慢查询。

  • planCacheKey 更深入地了解慢查询的查询计划缓存

从版本 4.2 开始,副本集的从节点现在会记录应用时间超过慢操作阈值时长的 oplog 条目。这些慢 oplog 消息:

  • diagnostic log中针对从节点记录。

  • 记录在 REPL 组件下,该组件将含有文本 applied op: <oplog entry> took <num>ms

  • 不依赖日志级别(系统级别或组件级别)

  • 不依赖于分析级别。

  • slowOpSampleRate的影响。

分析器不会捕获慢 oplog 条目。

如需了解更多信息,请参阅“数据库分析器”。

db.currentOp() 方法会报告 mongod 实例上运行的当前操作。

cursor.explain()db.collection.explain() 方法返回有关查询执行的信息,例如为完成查询和执行统计信息而选择的 MongoDB 索引。您可以在 queryPlanner 模式、executionStats 模式或 allPlansExecution 模式下运行这些方法,以控制返回的信息量。

例子

要在查询上使用cursor.explain() ,查找与表达式{ a: 1 }匹配的文档,请在名为records的集合中,使用类似于 mongosh中以下内容的操作:

db.records.find( { a: 1 } ).explain("executionStats")

从 MongoDB 4.2 开始,解释输出包括:

如需了解更多信息,请参阅“解释结果cursor.explain()db.collection.explain()分析查询性能”。

← 查询优化