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