每個索引都會占據(jù)一些空間,從而也會在每次插入、更新與刪除操作時產(chǎn)生一定的開銷。所以如果集合很少使用讀取操作,就盡量不要使用索引。
因為索引存儲在內(nèi)存中,所以應(yīng)保證索引總體的大小不超過內(nèi)存的容量。如果索引總體積超出了內(nèi)存容量,就會刪除部分索引,從而降低性能。
當查詢使用以下元素時,不能使用索引:
$nin
、$not
,等等) $mod
) 因此,經(jīng)常檢查查詢使用的索引是一個明智的做法。
自 MongoDB 2.6 版本起,如果已有索引字段的值超出了索引鍵限制,則無法創(chuàng)建索引。
如果文檔的索引字段值超出了索引鍵的限制,MongoDB 不會將任何文檔插入已索引集合。類似于使用 mongorestore 和 mongoimport 工具時的情況。