Mongodb为集合添加索引,能够提高查询的效率,减少查询过程中检索文档的数量,改变文档检索的方式。 索引,采用集合中的一部分数据,构建了B tree,支持mongodb的高效检索。除$indexStats命令外,mongodb还记录下索引数量,索引占用存储空间等信息。能够帮助mongodb使用者完成数据库服务器与索引有关的日常监控和维护。
1. db.serverStatus()记录下的索引统计信息
db.serverStatus()
db.serverStatus()返回数据库的全局监控信息,监控系统定期运行这个命令获取数据库运行实例的监控数据
-
- metrics.operation.scanAndOrder 返回没有使用索引排序的查询排序总数量
- metrics.queryExecutor.scanned 查询和生成执行计划时,索引使用的次数。这个数值与explain()中返回的totalKeysExamined数量相同
2. collStats()返回的集合层面的磁盘空间占用信息
db.runCommand({
collstats: <collectionName>
})
//返回订单表 orders的集合统计信息
db.runCommand({
collstats: "orders"
})
-
- totalIndexSize 指定集合中索引占用存储空间的大小,包括正在构建中索引的大小。如果数据库中存在构建中的索引,则包含构建中索引的大小。
- indexSizes 指定集合中,每个索引所占存储空间的大小。包括正在构建中索引的大小。如果数据库中存在构建中的索引,则包含构建中索引的大小。
3. dbStats()记录的数据库级别索引统计信息.
dbStats()与serverStatus()查询mongodb中不同层次的监控信息。 serverStatus()返回数据库运行实例的监控信息。 技术人员使用mongodb shell登陆进入mongodb以后,可以通过show dbs命令查看数据库列表。 dbStats()命令返回的就是show dbs结果集中一个db的统计信息。
db.runCommand({
dbStats: 1
})
-
- dbStats.indexes, 返回指定数据库中索引的数量
- dbStats.indexSize, 返回指定数据库中索引所占空间的大小