mongodb 3.0 中怎么显示cursor和nscanned?

浏览:46日期:2023-07-07

问题描述

如题这是我用explain显示出来的数据

> db.users.explain('allPlansExecution').find({username:’user101’}){ 'queryPlanner' : {'plannerVersion' : 1,'namespace' : 'test.users','indexFilterSet' : false,'parsedQuery' : { 'username' : {'$eq' : 'user101' }},'winningPlan' : { 'stage' : 'FETCH', 'inputStage' : {'stage' : 'IXSCAN','keyPattern' : { 'username' : 1},'indexName' : 'username_1','isMultiKey' : false,'direction' : 'forward','indexBounds' : { 'username' : ['['user101', 'user101']' ]} }},'rejectedPlans' : [ ] }, 'executionStats' : {'executionSuccess' : true,'nReturned' : 1,'executionTimeMillis' : 0,'totalKeysExamined' : 1,'totalDocsExamined' : 1,'executionStages' : { 'stage' : 'FETCH', 'nReturned' : 1, 'executionTimeMillisEstimate' : 0, 'works' : 2, 'advanced' : 1, 'needTime' : 0, 'needFetch' : 0, 'saveState' : 0, 'restoreState' : 0, 'isEOF' : 1, 'invalidates' : 0, 'docsExamined' : 1, 'alreadyHasObj' : 0, 'inputStage' : {'stage' : 'IXSCAN','nReturned' : 1,'executionTimeMillisEstimate' : 0,'works' : 2,'advanced' : 1,'needTime' : 0,'needFetch' : 0,'saveState' : 0,'restoreState' : 0,'isEOF' : 1,'invalidates' : 0,'keyPattern' : { 'username' : 1},'indexName' : 'username_1','isMultiKey' : false,'direction' : 'forward','indexBounds' : { 'username' : ['['user101', 'user101']' ]},'keysExamined' : 1,'dupsTested' : 0,'dupsDropped' : 0,'seenInvalidated' : 0,'matchTested' : 0 }},'allPlansExecution' : [ ] }, 'serverInfo' : {'host' : 'mongo2','port' : 27017,'version' : '3.0.0','gitVersion' : 'a841fd6394365954886924a35076691b4d149168' }, 'ok' : 1}

问题解答

回答1:

刚刚查了下文档,怪自己没仔细看结果。。

queryPlanner.winningPlan.inputStage.stage列显示查询策略 - IXSCAN表示使用Index 查询 - COLLSCAN表示使用列查询,也就是一个一个对比过去

cursor中的索引名称移动到了queryPlanner.winningPlan.inputStage.indexName

3.0中使用executionStats.totalDocsExamined来显示总共需要检查的文档数,用以取而代之nscanned。

回答2:

>db.person.find({age:{$lt:20}}).explain('executionStats')'executionStats' : {'executionSuccess' : true,'nReturned' : 20,'executionTimeMillis' : 567,'totalKeysExamined' : 0,'totalDocsExamined' : 1000000,'executionStages' : { 'stage' : 'COLLSCAN', 'filter' : {'age' : { '$lt' : 20} }, 'nReturned' : 20, 'executionTimeMillisEstimate' : 520, 'works' : 1000002, 'advanced' : 20, 'needTime' : 999981, 'needFetch' : 0, 'saveState' : 7812, 'restoreState' : 7812, 'isEOF' : 1, 'invalidates' : 0, 'direction' : 'forward', 'docsExamined' : 1000000}

相关文章: