MongoDB 3.x版本explain命令
来源:互联网 发布:成都电商美工培训 编辑:程序博客网 时间:2024/05/07 18:24
命令介绍
在对MongoDB进行性能分析时, 需要使用explain命令, 以观察索引是否使用到, 扫描了多少文档等信息. MongoDB 3.0以后explain命令进行了更改, 参数以及输出格式发生了变化. 3.0以后传入一个字符串参数verbosity.
语法如下:
cursor.explain(verbosity)
其中verbosity代表显示的内容. 执行以下语句:
db.users.find({username:"user12345"}).explain(true)
如上, true表示全部显示. 一般包含executionStats,queryPlanner,serverInfo几个部分:
{ "executionStats" : { "allPlansExecution" : [ ], "executionStages" : { "advanced" : 0, "direction" : "forward", "docsExamined" : 1000000, "executionTimeMillisEstimate" : 270, "filter" : { "username" : { "$eq" : "user12345" } }, "invalidates" : 0, "isEOF" : 1, "nReturned" : 0, "needTime" : 1000001, "needYield" : 0, "restoreState" : 7812, "saveState" : 7812, "stage" : "COLLSCAN", "works" : 1000002 }, "executionSuccess" : true, "executionTimeMillis" : 347, "nReturned" : 0, "totalDocsExamined" : 1000000, "totalKeysExamined" : 0 }, "ok" : 1, "queryPlanner" : { "indexFilterSet" : false, "namespace" : "test.users", "parsedQuery" : { "username" : { "$eq" : "user12345" } }, "plannerVersion" : 1, "rejectedPlans" : [ ], "winningPlan" : { "direction" : "forward", "filter" : { "username" : { "$eq" : "user12345" } }, "stage" : "COLLSCAN" } }, "serverInfo" : { "gitVersion" : "79d9b3ab5ce20f51c272b4411202710a082d0317", "host" : "ubuntu", "port" : 27017, "version" : "3.2.10" }}
参数说明
verbosity可选的模式有”queryPlanner”, “executionStats”, 和 “allPlansExecution”.传入true代表allPlansExecution mode, 传入false或者默认为queryPlanner mode.
对aggregate()方法调用explain方法会忽略参数信息, 以queryPlanner mode执行.
queryPlanner Mode: MongoDB运行 query optimizer来获取最优的执行计划, 这个模式返回被评估的方法queryPlanner信息
executionStats Mode: MongoDB运行query optimizer来获取最优的执行计划, 然后执行这个计划, 并返回执行过程的信息.
对于写操作, db.collection.explain()方法会返回将要执行的update和delete操作的信息, 但是并不会将修改应用到数据库.
db.collection.explain()并不会返回rejected plan的query execution information.
allPlansExecution Mode: MongoDB运行query optimizer来选择winning plan, 并且执行这个计划. 在”allPlansExecution” 模式中, MongoDB会返回在plan selection中所有的candidate计划.
对于写操作, 同executionStats mode. 并不进行真正的更改操作.
这个方法返回被评估的方法的queryPlanner和executionStats信息. executionStats包含完整的winning query执行信息.
如果query optimizer阶段考虑了多个执行计划,那么executionStats还包含了在plan selection阶段的winning plan和rejected candidate plans的部分信息.
参考文档 : https://docs.mongodb.com/manual/reference/method/db.collection.explain/#explain-method-verbosity
- MongoDB 3.x版本explain命令
- MongoDB Explain
- 【mongodb】3.X版本的 的用户认证
- Spring-data-mongodb 连接 MongoDB 3.x 版本的XML文件配置
- mongodb explain plan
- MongoDB 执行计划Explain
- MongoDB 3.0的Explain
- MongoDB 3.0的Explain
- 【MongoDB】explain & hint
- 九、MongoDB中explain()
- MongoDB性能分析方法explain()
- MongoDB 索引和explain使用
- mongodb性能分析方法:explain()
- mongodb性能分析方法:explain()
- MYSQL中的Explain命令
- hive之explain命令
- explain命令详解
- mysql explain命令详解
- DOM操作——怎样添加、移除、移动、复制、创建和查找节点
- Maven之错误
- appium等待控件或者Activity出现函数
- Python --生成器
- JavaScript有三种获取DOM元素的方式
- MongoDB 3.x版本explain命令
- Ubuntu 15中使SublimeText 3支持中文输入法
- STM32Cube MX 下IIC的配置与使用--GPIO模拟
- 数据结构与算法分析
- 《VxWorks学习笔记》——任务属性
- [回归分析][14]--Logistic回归
- 二维连续型随机变量及其分布
- 程序员之于管理还是技术
- C语言 内存管理的细枝末节