有没有一种方法可以跟踪MongoDB中的“查询”性能?特别测试索引或子文档?跟踪MongoDB性能?
在sql中,您可以运行查询,查看执行时间和其他分析指标。我有一个巨大的mongoDB集合,想要尝试不同的变化和索引,不知道如何测试它,会很高兴看到需要多长时间才能找到一个记录..(我是MongoDB中的新手)。谢谢
有没有一种方法可以跟踪MongoDB中的“查询”性能?特别测试索引或子文档?跟踪MongoDB性能?
在sql中,您可以运行查询,查看执行时间和其他分析指标。我有一个巨大的mongoDB集合,想要尝试不同的变化和索引,不知道如何测试它,会很高兴看到需要多长时间才能找到一个记录..(我是MongoDB中的新手)。谢谢
这里有两件事情,你可能会熟悉。
解释计划上解释
Here are some basic docs。运行解释与db.foo.find(query).explain()
一样简单。 (请注意,这实际上运行的查询,所以如果您的查询很慢,这将是太)
要了解输出,您需要检查下面的慢日志中的一些文档。您基本上会获得关于“扫描了多少索引”,“找到多少索引”等详细信息。与此类性能细节的情况一样,解释真的取决于您。阅读上面和下面的文档,指出你正确的方向。
慢速日志
默认情况下,缓慢日志是活动与100ms的阈值。 Here's a link到分析的完整文档。几个关键点,让你开始:
get/set方法分析:
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
见慢查询:
db.system.profile.find()
MongoDB中有一个查询分析器可以打开。 请参阅:http://www.mongodb.org/display/DOCS/Database+Profiler
请参阅此页面,特别是另请参阅部分。 http://www.mongodb.org/display/DOCS/Database+Profiler – 2010-12-09 16:59:43
只是在几年后添加:现在“新”推荐的使用解释方式是:db.foo.explain()。find(query)。在“查找”之前注意“解释”。另外,指定explain(true)以获取更多详细信息,例如所检查文档的数量:db.foo.explain(true).find(query);键入db.foo.explain()。帮助列出您可以使用解释的查询。 – alexbt 2016-08-24 12:35:03