MongoDB 索引限制

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

额外开销

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

内存使用

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

询限制

索引不能被以下的查询使用:

  • 正则表达式及非操作符,如 $nin, $not, 等。
  • 算术运算符,如 $mod, 等。
  • $where 子句

所以,检测你的语句是否使用索引是一个好的习惯,可以用explain来查看。

索引键限制

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

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

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

最大范围

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

查看笔记

扫码一下
查看教程更方便