📜  MongoDB-索引限制

📅  最后修改于: 2020-11-27 06:03:24             🧑  作者: Mango


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

额外开销

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

RAM使用

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

查询限制

索引不能用于使用-

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

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

索引键限制

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

插入文件超过索引键限制

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

最大范围

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