MongoDB - 索引限制

在本章中,我们将了解索引限制及其他组件.

额外开销

每个索引占用一些空间以及导致每个插入,更新和删除的开销.因此,如果您很少使用集合进行读取操作,则不使用索引是有意义的.

RAM使用

由于索引存储在RAM中,您应该确保索引的总大小不超过RAM限制.如果总大小增加了RAM大小,它将开始删除一些索引,从而导致性能下降.

查询限制

不能使用索引在使用的查询中;

  • 正则表达式或否定运算符,如$nin,$not等.

  • 算术运算符,如$mod等.

  • $where子句

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

索引键限制

从版本2.6开始,如果值为2,MongoDB将不会创建索引现有索引字段超出索引键限制.

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

如果索引,MongoDB不会将任何文档插入索引集合中此文档的字段值超出索引键限制.与mongorestore和mongoimport实用程序的情况相同.

最大范围

  • 集合不能有超过64个索引.

  • 索引名称的长度不能超过125个字符.

  • 复合索引最多可以索引31个字段.