评估当前操作的性能
在本页面
以下各节介绍了用于评估操作性能的技术。
使用数据库分析器来计算针对数据库的操作
MongoDB提供了一个数据库分析器,它显示针对数据库的每个操作的性能特征。使用分析器定位任何运行缓慢的查询或写操作。例如,您可以使用此信息来确定要创建什么索引。
从MongoDB 4.2开始,用于读写操作的profiler条目和诊断日志消息(即mongod/mongos日志消息)包括:
从版本4.2(也可以从4.0.6开始使用)开始,复制集的次要成员现在会记录花费超过慢操作阈值的oplog条目。这些缓慢的oplog消息被记录在REPL组件下的诊断日志中,并应用文本op: num
>ms
有关更多信息,请参见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输出包括:
queryHash
帮助识别具有相同查询形状的慢速查询。planCacheKey
为深入了解查询计划缓存提供慢速查询。
欲了解更多信息,请参阅解释结果, cursor.explain()
,db.collection.explain()
,和 分析查询性能。
译者:杨帅
校对:杨帅
参见