额外开销
每个索引都会占据一些空间,从而也会在每次插入、更新与删除操作时产生一定的开销。所以如果集合很少使用读取操作,就尽量不要使用索引。
内存使用
因为索引存储在内存中,所以应保证索引总体的大小不超过内存的容量。如果索引总体积超出了内存容量,就会删除部分索引,从而降低性能。
查询限制
当查询使用以下元素时,不能使用索引:
正则表达式或否定运算符($nin、$not,等等)
算术运算符(比如 $mod)
$where 子句
因此,经常检查查询使用的索引是一个明智的做法。
索引键限制
自 MongoDB 2.6 版本起,如果已有索引字段的值超出了索引键限制,则无法创建索引。
插入文档超过索引键限制
如果文档的索引字段值超出了索引键的限制,MongoDB 不会将任何文档插入已索引集合。类似于使用 mongorestore 和 mongoimport 工具时的情况。
最大范围
集合索引数不能超过 64 个。
索引名称长度不能大于 125 个字符。
复合索引最多能有 31 个被索引的字段。
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程
上一篇:mongodb 高级索引
下一篇:mongodb ObjectId
^