MongoDB Command to Evaluate Query Performance

Following command can be used to evaluate query performance of a MongoDB Collection:

db.<collectionName>.find().explain("executionStats");

The above command would print result such as following. COLLSCAN represents the collection scan.

{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "vitalflux.user",
        "indexFilterSet" : false,
        "parsedQuery" : {

        },
        "winningPlan" : {
            "stage" : "COLLSCAN",
            "direction" : "forward"
        },
        "rejectedPlans" : [ ]
    },
    "executionStats" : {
        "executionSuccess" : true,
        "nReturned" : 100,
        "executionTimeMillis" : 0,
        "totalKeysExamined" : 0,
        "totalDocsExamined" : 100,
        "executionStages" : {
            "stage" : "COLLSCAN",
            "nReturned" : 100,
            "executionTimeMillisEstimate" : 0,
            "works" : 102,
            "advanced" : 100,
            "needTime" : 1,
            "needYield" : 0,
            "saveState" : 0,
            "restoreState" : 0,
            "isEOF" : 1,
            "invalidates" : 0,
            "direction" : "forward",
            "docsExamined" : 100
        }
    },
    "serverInfo" : {
        "host" : "rs-HP83",
        "port" : 27017,
        "version" : "3.4.6",
        "gitVersion" : "c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5"
    },
    "ok" : 1
}

Query Performance Metrics

Following are some of the metrics to watchout for when evaluating query performance:

  • totalKeysExamined: Total number of index entries scanned
  • totalDocsExamined: Total number of documents scanned to find the results.
  • executionTimeMillis: Time required to excute the query
Ajitesh Kumar
Follow me

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. For latest updates and blogs, follow us on Twitter. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking. Check out my other blog, Revive-n-Thrive.com
Posted in MongoDB, NoSQL. Tagged with , .

Leave a Reply

Your email address will not be published. Required fields are marked *