•   MongoDB教程
  • MongoDB快速入门
  • MongoDB历史
  • MongoDB特点
  • MongoDB数据库的优点
  • MongoDB安装配置(Windows)
  • MongoDB安装配置(Ubuntu)
  • MongoDB安装配置(RedHat/CentOS)
  • MongoDB数据建模
  • MongoDB创建数据库
  • MongoDB删除数据库
  • MongoDB创建集合
  • MongoDB删除集合
  • MongoDB数据类型
  • MongoDB插入文档
  • MongoDB查询文档
  • MongoDB更新文档
  • MongoDB删除文档
  • MongoDB投影(选择字段)
  • MongoDB限制记录数
  • MongoDB排序记录
  • MongoDB索引
  • MongoDB聚合
  • MongoDB复制
  • MongoDB分片
  • MongoDB备份与恢复
  • MongoDB部署
  • Java连接MongoDB操作
  • Python连接MongoDB操作
  • PHP连接MongoDB操作
  • Ruby连接MongoDB操作
  • 高级部分
  • MongoDB关联关系
  • MongoDB数据库引用
  • MongoDB覆盖查询
  • MongoDB分析查询
  • MongoDB原子操作
  • MongoDB高级索引
  • MongoDB索引限制
  • MongoDB ObjectId
  • MongoDB Map Reduce
  • MongoDB文本搜索
  • MongoDB正则表达式
  • MongoDB GridFS
  • MongoDB固定循环集合
  • MongoDB自动递增序列
  • 用户及安全
  • MongoDB安全检查表
  • MongoDB认证
  • MongoDB用户
  • MongoDB添加用户
  • MongoDB启用身份验证
  • MongoDB管理用户和角色
  • MongoDB更改用户密码和自定义数据

MongoDB索引限制

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

索引额外开销

每个索引占用一些空间,并导致每次插入,更新和删除的开销。因此,如果很少使用集合进行读取操作(大部分是插入或更新操作),则建议不要使用索引。

RAM/内存的使用

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

查询限制

索引不能在使用的查询中使用 -

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

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

索引键限制

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

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

如果本文档的索引字段值超过索引键限制,MongoDB将不会将任何文档插入索引集合。 mongorestore和mongoimport工具也是如此。

索引最大范围

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

上一篇:MongoDB高级索引下一篇:MongoDB ObjectId