鍍金池/ 教程/ 數(shù)據(jù)庫/ 索引限制
更新文檔
GridFS
Rockmongo 管理工具
Map Reduce
Java
創(chuàng)建備份
數(shù)據(jù)模型
創(chuàng)建數(shù)據(jù)庫
映射
查詢文檔
索引限制
ObjectId
刪除文檔
數(shù)據(jù)類型
高級索引
索引
優(yōu)勢
記錄排序
查詢分析
插入文檔
刪除集合
全文檢索
創(chuàng)建集合
概述
數(shù)據(jù)庫引用
覆蓋索引查詢
安裝環(huán)境
PHP
刪除數(shù)據(jù)庫
固定集合
關(guān)系
聚合
自動增長
復制
限制記錄
部署
分片
正則表達式
原子操作

索引限制

額外開銷

每個索引都會占據(jù)一些空間,從而也會在每次插入、更新與刪除操作時產(chǎn)生一定的開銷。所以如果集合很少使用讀取操作,就盡量不要使用索引。

內(nèi)存使用

因為索引存儲在內(nèi)存中,所以應(yīng)保證索引總體的大小不超過內(nèi)存的容量。如果索引總體積超出了內(nèi)存容量,就會刪除部分索引,從而降低性能。

查詢限制

當查詢使用以下元素時,不能使用索引:

  • 正則表達式或否定運算符($nin、$not,等等)
  • 算術(shù)運算符(比如 $mod
  • $where 子句

因此,經(jīng)常檢查查詢使用的索引是一個明智的做法。

索引鍵限制

自 MongoDB 2.6 版本起,如果已有索引字段的值超出了索引鍵限制,則無法創(chuàng)建索引。

插入文檔超過索引鍵限制

如果文檔的索引字段值超出了索引鍵的限制,MongoDB 不會將任何文檔插入已索引集合。類似于使用 mongorestore 和 mongoimport 工具時的情況。

最大范圍

  • 集合索引數(shù)不能超過 64 個。
  • 索引名稱長度不能大于 125 個字符。
  • 復合索引最多能有 31 個被索引的字段。