MongoDB - 索引限制



在本章中,我们将学习索引限制及其其他组件。

额外开销

每个索引都会占用一些空间,并在每次插入、更新和删除时造成开销。因此,如果您很少将集合用于读取操作,则没有必要使用索引。

RAM 使用

由于索引存储在 RAM 中,因此您应确保索引的总大小不超过 RAM 限制。如果总大小超过 RAM 大小,它将开始删除某些索引,导致性能下降。

查询限制

索引不能用于使用以下内容的查询:

  • 正则表达式或否定运算符,如 $nin、$not 等。
  • 算术运算符,如 $mod 等。
  • $where 子句

因此,始终建议检查查询的索引使用情况。

索引键限制

从 2.6 版开始,如果现有索引字段的值超过索引键限制,MongoDB 将不会创建索引。

插入超过索引键限制的文档

如果文档的索引字段值超过索引键限制,MongoDB 将不会将任何文档插入到已索引的集合中。mongorestore 和 mongoimport 实用程序也是如此。

最大范围

  • 一个集合最多只能有 64 个索引。
  • 索引名称的长度不能超过 125 个字符。
  • 复合索引最多可以索引 31 个字段。
广告