Track MongoDB performance?

前端 未结 2 1518
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-13 19:43

Is there a way to track \'query\' performance in MongoDB? Specially testing indexes or subdocuments?

In sql you can run queries, see execution time and other analyt

相关标签:
2条回答
  • 2020-12-13 20:11

    MongoDB has a query profiler you can turn on. See: http://www.mongodb.org/display/DOCS/Database+Profiler

    0 讨论(0)
  • 2020-12-13 20:16

    There are two things here that you'll likely be familiar with.

    1. Explain plans
    2. Slow Logs

    Explain Plans

    Here are some basic docs on explain. Running explain is as simple as db.foo.find(query).explain(). (note that this actually runs the query, so if your query is slow this will be too)

    To understand the output, you'll want to check some of the docs on the slow logs below. You're basically given details about "how much index was scanned", "how many are found", etc. As is the case with such performance details, interpretation is really up to you. Read the docs above and below to point you in the right direction.

    Slow Logs

    By default, slow logs are active with a threshold of 100ms. Here's a link to the full documentation on profiling. A couple of key points to get you started:

    Get/Set profiling:

    db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
    db.getProfilingLevel();
    

    See slow queries:

    db.system.profile.find()
    
    0 讨论(0)
提交回复
热议问题