参考 > MongoDB CRUD操作 > MongoDB CRUD概念 > 查询优化 > 评估当前运营的绩效
以下各节介绍了评估运营绩效的技术。
MongoDB提供了一个数据库探查器,该探查器显示了针对数据库的每个操作的性能特征。使用事件探查器可以找到运行缓慢的所有查询或写入操作。例如,您可以使用此信息来确定要创建的索引。
从MongoDB 4.2开始,用于读取/写入操作的事件探查器条目和诊断日志消息(即mongod / mongos日志消息)包括:
从版本4.2(也从版本4.0.6开始可用)开始,副本集的辅助成员现在
记录的oplog条目所花费的时间比慢操作阈值要长。这些缓慢的oplog消息会在组件下的文本中记录为次要日志。这些慢操作日志条目仅取决于慢操作阈值。它们不依赖于日志级别(在系统级别或组件级别),配置级别或运行缓慢的采样率。探查器不会捕获缓慢的操作日志条目。diagnostic log
REPL
applied
op: <oplog entry> took <num>ms
有关更多信息,请参见Database Profiler。
db.currentOp()
到评估mongod
操作¶该db.currentOp()
方法报告mongod
实例上正在运行的当前操作。
explain
来评估查询性能¶在cursor.explain()
与db.collection.explain()
上一个查询的执行方法返回的信息,如MongoDB的选择以满足查询和执行统计数据的指标。您可以在queryPlanner
模式,executionStats模式或
allPlansExecution模式下运行方法,以控制返回的信息量。
例
要cursor.explain()
在查询中使用与表达式相匹配的文档,请在名为的集合中使用类似于shell中的以下操作:{ a: 1 }
records
mongo
从MongoDB 4.2开始,说明输出包括:
queryHash
帮助识别具有相同查询形状的慢速查询。planCacheKey
为深入了解查询计划缓存提供慢速查询。欲了解更多信息,请参阅解释结果,
cursor.explain()
,db.collection.explain()
,和
分析查询性能。