Performance Advisor 建议删除未使用的索引、冗余索引和隐藏索引,以提高写入性能并增加存储空间。
提示
要详细学习;了解不必要索引的影响,请参阅删除不必要的索引。
未使用的索引
如果索引不支持任何查询,则该索引未被使用。
如果索引在创建或服务器重新启动后 7 天或更长时间不支持查询,则Performance Advisor会将索引标记为未使用。
冗余索引
如果另一个索引可以支持它可以支持的任何查询,则该索引是冗余的。
如果索引与同一collection中另一个索引的前缀匹配,则Performance Advisor会将其标记为冗余。
例子
如果集合包含索引:
{ a: 1 }
{ b: -1 }
{ a: 1, b: -1 }
{ a: 1 }
是多余的,因为它与前缀{ a: 1, b: -1 }
匹配。
{ b: -1 }
不是冗余的,因为它不匹配任何前缀。
在Performance Advisor中,冗余索引标有红色Redundant
标记。在每个冗余索引下方,Performance Advisor会显示覆盖该冗余索引的相关索引。
注意
系统会显示相关索引,以验证是否可以安全删除冗余索引。 不建议删除相关索引。
Hidden Indexes
MongoDB 4.4 版本中的新增功能
隐藏索引不用于支持查询。 它们仍然会影响写入性能并消耗存储空间。
隐藏索引对于评估删除索引的影响非常有用。 取消隐藏索引比重建已删除的索引容易得多。
提示
要学习;了解有关隐藏索引的更多信息,请参阅MongoDB手册中的隐藏索引。
要使用Performance Advisor隐藏索引,请参阅删除或隐藏索引。
要取消隐藏索引,请参阅 MongoDB 手册中的取消隐藏现有索引。
Performance Advisor始终建议删除隐藏索引。在确信不需要某个隐藏索引后,将其删除。
删除或隐藏索引
注意
MongoDB 建议在删除索引之前将其隐藏。 隐藏索引在 MongoDB 4.4及更高版本中可用。
要使用Performance Advisor删除或隐藏索引,请执行以下操作:
在要删除或隐藏的索引上,单击Drop Index 。
Performance Advisor显示一个对话框,其中包含指向数据浏览器的链接以及用于删除该索引的可复制的MongoDB Shell命令。
在 MongoDB 4.4 及更高版本中,该对话框还提供了一个可复制的 MongoDB Shell 命令来隐藏该索引。