-
4.9 MongoDB索引使用注意事项
-
本节我们来介绍以下使用索引时的一些限制和注意事项。
额外开销
每个索引都会占用一些空间,并且在每次执行插入、更新和删除等操作时也需要对索引进行操作,导致额外的开销。因此,如果您很少将某个集合用于读取操作,最好不要在集合中使用索引。
由于索引存储在 RAM(内存)中,因此应确保索引的总大小不超过 RAM 的限制。如果总大小大于 RAM 的大小,那么 MongoDB 将删除一些索引,这就会导致性能下降。
在以下的查询中,不能使用索引:
.正则表达式或否定运算符,例如 $nin、$not 等;
.算术运算符,例如 $mod 等;
.$where 子句。
因此,建议经常使用 explain() 来检查查询时索引的使用情况。
从 2.6 版本开始,如果现有索引字段的值超过索引键的限制,那么 MongoDB 将不会创建索引。
如果文档索引字段的值超过了索引键的限制,那么 MongoDB 不会将任何文档插入到集合中。mongorestore 和 mongoimport 实用程序也是如此。
在定义索引时有以下几点需要注意:
.集合的索引不能超过 64 个;
.索引名称的长度不能超过 128 个字符;
.复合索引最多可以拥有 31 个字段。
- 留下你的读书笔记
- 你还没登录,点击这里
-
用户笔记留言