文档数据库服务中每个索引都使用独立的文件存储,如果数据库中有太多不使用或者功能重复的索引,会在一定程度上浪费磁盘空间,并且影响数据库的写入性能。
对于功能重复的索引,比如前文提到的 {"score": 1, "name": 1} 复合索引就能覆盖 {"score": 1} 索引的功能。
用户可以在使用 mongo shell 连接上文档数据库实例之后,执行如下命令进行检查和清理。
查看某个表的所有索引总大小:
db.coll.totalIndexSize()
查看每个索引的大小:
db.coll.stats().indexSizes
查看每个索引的字段和属性信息:
db.coll.getIndexes()
查看索引的创建时间,使用次数等信息:
db.coll.aggregate([{$indexStats:{}}])清理索引:
db.coll.dropIndex({a: 1})