翻译或纠错本页面
衡量索引的使用情况¶
概述¶
查询请能是索引利用率的一个很好指标。但是,为了能准确的探究索引使用情况,MongoDB提供了一系列工具,帮助您研究查询操作并观察数据库索引的使用情况。
操作¶
使用 explain() 返回查询计划(query plan)¶
在任意游标(例如 查询)后面附加 explain() 方法可以返回一个含有查询过程的统计数据的文档,包括所使用的索引,扫描过的文档数,查询所消耗的毫秒数。
使用 hint() 控制索引使用¶
在任意游标(例如 查询)后面附加 hint() 方法并以索引作为方法参数可以 强制 MongoDB使用指定的索引来匹配查询。请看如下示例:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } )
您可以使用联合使用 hint() and explain() 来逐个对比每个索引的效率。您可以在 hint() 方法中指定 $natural 操作符来避免MongoDB使用 任何 索引(注; 亦即,查询不会使用索引):
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { $natural: 1 } )
MongoDB实例的索引使用情况报告¶
MongoDB提供了一系列关于索引利用情况的度量工具和操作,这在您希望分析数据库中的索引使用情况时可能会需要用到:
在 serverStatus 的输出结果中:
在 collStats 的输出结果中:
在 dbStats 的输出结果中: