开发学院

您的位置:首页>教程>正文

教程正文

MongoDB 索引限制

MongoDB 索引限制

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

额外开销

  每个索引都会占用一些空间,并在每次插入、更新和删除时产生开销。因此,如果很少将集合用于读取操作,则不使用索引是有意义的。

RAM使用

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

查询限制

  索引不能用于使用的查询

  •   正则表达式和否定运算符$nin, $not, etc.

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

  •   $where子句

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

索引键限制

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

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

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

最大范围

  •   集合的索引不能超过64个。

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

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