kagxin / blog

个人博客:技术、随笔、生活
https://github.com/kagxin/blog/issues
7 stars 0 forks source link

mongodb explain #50

Open kagxin opened 4 years ago

kagxin commented 4 years ago

MongoDB Explain Results

返回有关查询计划的信息和查询计划的执行统计信息

queryPlanner

stage

每个阶段将其结果(即文档或索引键)传递给父节点。叶节点访问集合或索引。内部节点操纵由子节点产生的文档或索引键。根节点是MongoDB从中得出结果集的最后阶段。

queryPlanner信息,详细说明了查询优化器选择的计划

explain.queryPlanner.namespace 查询计划的命名空间一般是database.collection
explain.queryPlanner.indexFilterSet
explain.queryPlanner.queryHash
explain.queryPlanner.planCacheKey
explain.queryPlanner.optimizedPipeline
explain.queryPlanner.winningPlan 胜出的查询计划
explain.queryPlanner.winningPlan.stage 查询计划阶段名称
explain.queryPlanner.winningPlan.inputStage 描述子阶段的文档(只有个子阶段)
explain.queryPlanner.winningPlan.inputStages 描述子阶段的文档(有多个子阶段时)
explain.queryPlanner.rejectedPlans 查询优化器考虑和拒绝的候选计划的数组

executionStats

胜出的计划的执行情况

explain.executionStats.nReturned 符合查询条件的文档数
explain.executionStats.executionTimeMillis 选择查询计划和执行查询所需的总时间(以毫秒为单位
explain.executionStats.totalKeysExamined 扫描的索引条目数
explain.executionStats.totalDocsExamined 查询执行期间检查的文档数,检查文档的常见查询执行阶段是COLLSCAN 和FETCH
explain.executionStats.executionStages 获胜计划的执行情况
explain.executionStats.executionStages.works 指定查询执行阶段执行的“工作单位”的数量。
explain.executionStats.executionStages.advanced
explain.executionStats.executionStages.needTime
explain.executionStats.executionStages.needYield 磁盘io操作中挂起的次数
explain.executionStats.executionStages.saveState
explain.executionStats.executionStages.restoreState
explain.executionStats.executionStages.isEOF
explain.executionStats.executionStages.inputStage.keysExamined
explain.executionStats.executionStages.inputStage.docsExamined
explain.executionStats.executionStages.inputStage.seeks
explain.executionStats.allPlansExecution 在计划选择阶段为获胜和拒绝计划部分的执行信息

serverInfo

host 主机
port 端口
version monogdb server的版本号
gitVersion

ref: https://docs.mongodb.com/manual/reference/explain-results/index.html