- MongoDB 教程
- MongoDB - 主页
- MongoDB - 概述
- MongoDB - 优点
- MongoDB - 环境
- MongoDB - 数据建模
- MongoDB - 创建数据库
- MongoDB - 删除数据库
- MongoDB - 创建集合
- MongoDB - 删除集合
- MongoDB - 数据类型
- MongoDB - 插入文档
- MongoDB - 查询文档
- MongoDB - 更新文档
- MongoDB - 删除文档
- MongoDB - 投影
- MongoDB - 限制记录
- MongoDB - 记录排序
- MongoDB - 索引
- MongoDB - 聚合
- MongoDB - 复制
- MongoDB - 分片
- MongoDB - 创建备份
- MongoDB - 部署
- MongoDB-Java
- MongoDB-PHP
- 高级 MongoDB
- MongoDB - 关系
- MongoDB - 数据库参考
- MongoDB - 涵盖查询
- MongoDB - 分析查询
- MongoDB - 原子操作
- MongoDB - 高级索引
- MongoDB - 索引限制
- MongoDB - 对象 ID
- MongoDB - 映射减少
- MongoDB - 文本搜索
- MongoDB - 正则表达式
- 与 Rockmongo 合作
- MongoDB-GridFS
- MongoDB - 上限集合
- 自动递增序列
- MongoDB 有用资源
- MongoDB - 问题与解答
- MongoDB - 快速指南
- MongoDB - 有用的资源
- MongoDB - 讨论
MongoDB - 索引限制
在本章中,我们将了解索引限制及其其他组成部分。
额外开销
每个索引都会占用一些空间,并且会导致每次插入、更新和删除的开销。因此,如果您很少使用集合进行读取操作,那么不使用索引是有意义的。
内存使用情况
由于索引存储在 RAM 中,因此应确保索引的总大小不超过 RAM 限制。如果总大小增加了 RAM 大小,它将开始删除一些索引,从而导致性能损失。
查询限制
索引不能在使用以下命令的查询中使用 -
- 正则表达式或否定运算符,例如 $nin、$not 等。
- 算术运算符,如 $mod 等。
- $where 子句
因此,始终建议检查查询的索引使用情况。
指数关键限制
从2.6版本开始,如果现有索引字段的值超过索引键限制,MongoDB将不会创建索引。
插入文档超出索引键限制
如果文档的索引字段值超过索引键限制,MongoDB 不会将任何文档插入到索引集合中。mongorestore 和 mongoimport 实用程序的情况也是如此。
最大范围
- 一个集合不能有超过 64 个索引。
- 索引名称的长度不能超过 125 个字符。
- 复合索引最多可以有 31 个索引字段。