文档数据库服务

清理不必要的索引

2025-06-30 03:48:57

文档数据库服务中每个索引都使用独立的文件存储,如果数据库中有太多不使用或者功能重复的索引,会在一定程度上浪费磁盘空间,并且影响数据库的写入性能。 

对于功能重复的索引,比如前文提到的 {"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})


zb_FU4rMRgpR