首页
互助圈
新手教程
进阶之路
算法原理
架构设计
JAVA进阶
C/C++进阶
Python进阶
JavaScript
数据库
大数据
消息服务
源码解读
JAVA源码
Spring源码
数据库
消息服务
Dubbo源码
面试指南
大厂专栏
面试技巧
面试经验
面试题库
开发资料
文档资料
工具软件
电子书籍
小牛导航
在线工具
登录
目录
额外开销
RAM 使用
查询限制
索引键限制
插入超过索引键限制的文档
最大范围
当前位置:
首页
>
教程 >
MongoDB
>
MongoDB索引使用注意事项
精华
小牛编辑
180浏览
2023-03-14
本节我们来介绍以下使用索引时的一些限制和注意事项。
额外开销
每个索引都会占用一些空间,并且在每次执行插入、更新和删除等操作时也需要对索引进行操作,导致额外的开销。因此,如果您很少将某个集合用于读取操作,最好不要在集合中使用索引。
RAM 使用
由于索引存储在 RAM(内存)中,因此应确保索引的总大小不超过 RAM 的限制。如果总大小大于 RAM 的大小,那么 MongoDB 将删除一些索引,这就会导致性能下降。
查询限制
在以下的查询中,不能使用索引:
正则表达式或否定运算符,例如 $nin、$not 等;
算术运算符,例如 $mod 等;
$where 子句。
因此,建议经常使用 explain() 来检查查询时索引的使用情况。
索引键限制
从 2.6 版本开始,如果现有索引字段的值超过索引键的限制,那么 MongoDB 将不会创建索引。
插入超过索引键限制的文档
如果文档索引字段的值超过了索引键的限制,那么 MongoDB 不会将任何文档插入到集合中。mongorestore 和 mongoimport 实用程序也是如此。
最大范围
在定义索引时有以下几点需要注意:
集合的索引不能超过 64 个;
索引名称的长度不能超过 128 个字符;
复合索引最多可以拥有 31 个字段。
免责声明:
以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。