评估当前操作性能

在本页面

以下各节介绍了用于评估操作性能的技术。

使用数据库分析器来计算针对数据库的操作

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

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

从版本4.2(也可以从4.0.6开始使用)开始,复制集的次要成员现在会记录花费超过慢操作阈值的oplog条目。这些缓慢的oplog消息被记录在REPL组件下的诊断日志中,并应用文本op: 取<num>ms。这些较慢的oplog条目仅依赖于较慢的操作阈值。它们不依赖于日志级别(系统或组件级别)、分析级别或较慢的操作采样率。分析器不会捕获很慢的oplog条目。

有关更多信息,请参见Database Profiler

使用db.currentOp()到评估mongod业务

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

使用explain来评估查询性能

cursor.explain()db.collection.explain() 方法返回关于查询执行的信息,如MongoDB的选择以满足查询和执行统计数据的指标。您可以在queryPlanner 模式,executionStats模式或 allPlansExecution模式下运行这些方法,以控制返回的信息量。

https://docs.mongodb.com/manual/reference/program/mongo/#bin.mongo)

例子

要在名为records的集合中查询与表达式**{a: 1}**匹配的文档时使用cursor.explain(),在mongo shell中使用类似于下面的操作:

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

从MongoDB 4.2开始,explain输出包括:

欲了解更多信息,请参阅解释结果cursor.explain()db.collection.explain(),和 分析查询性能

译者:杨帅

校对:杨帅

最后更新于