search

Home  >  Q&A  >  body text

mongodb 3.0 中怎么显示cursor和nscanned?

如题
这是我用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
}
漂亮男人漂亮男人2761 days ago658

reply all(2)I'll reply

  • 習慣沉默

    習慣沉默2017-04-25 09:04:45

    I just checked the documentation, and I blame myself for not looking at the results carefully. .

    queryPlanner.winningPlan.inputStage.stageColumn display query strategy
    - IXSCAN means using Index query
    - COLLSCAN means using column query, that is, comparing the past one by one

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

    Used in

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

    reply
    0
  • 習慣沉默

    習慣沉默2017-04-25 09:04:45

    >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
            }

    reply
    0
  • Cancelreply