- 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 - ObjectId
- MongoDB - Map Reduce
- MongoDB - 文本搜索
- MongoDB - 正则表达式
- 使用 Rockmongo
- MongoDB - GridFS
- MongoDB - 有盖集合
- 自动递增序列
- MongoDB 有用资源
- MongoDB - 问答
- MongoDB - 快速指南
- MongoDB - 有用资源
- MongoDB - 讨论
MongoDB - 索引限制
在本章中,我们将学习索引限制及其其他组件。
额外开销
每个索引都会占用一些空间,并在每次插入、更新和删除时造成开销。因此,如果您很少将集合用于读取操作,则没有必要使用索引。
RAM 使用
由于索引存储在 RAM 中,因此您应确保索引的总大小不超过 RAM 限制。如果总大小超过 RAM 大小,它将开始删除某些索引,导致性能下降。
查询限制
索引不能用于使用以下内容的查询:
- 正则表达式或否定运算符,如 $nin、$not 等。
- 算术运算符,如 $mod 等。
- $where 子句
因此,始终建议检查查询的索引使用情况。
索引键限制
从 2.6 版开始,如果现有索引字段的值超过索引键限制,MongoDB 将不会创建索引。
插入超过索引键限制的文档
如果文档的索引字段值超过索引键限制,MongoDB 将不会将任何文档插入到已索引的集合中。mongorestore 和 mongoimport 实用程序也是如此。
最大范围
- 一个集合最多只能有 64 个索引。
- 索引名称的长度不能超过 125 个字符。
- 复合索引最多可以索引 31 个字段。
广告