在本章中,我們將學(xué)習(xí)索引限制及其其他組成部分。
每個(gè)索引都占用一些空間,并在每次插入,更新和刪除時(shí)造成開銷。因此,如果您很少將集合用于讀取操作,則最好不要使用索引。
由于索引存儲(chǔ)在RAM中,因此應(yīng)確保索引的總大小不超過RAM限制。如果總大小增加了RAM大小,它將開始刪除一些索引,從而導(dǎo)致性能下降。
索引不能用于使用-
正則表達(dá)式或否定運(yùn)算符,例如$nin,$not等。
算術(shù)運(yùn)算符,例如$mod等。
$where子句
因此,始終建議檢查查詢的索引使用情況。
從2.6版開始,如果現(xiàn)有索引字段的值超過索引鍵限制,則MongoDB將不會(huì)創(chuàng)建索引。
如果此文檔的索引字段值超過索引鍵限制,則MongoDB將不會(huì)在索引集合中插入任何文檔。mongorestore和mongoimport實(shí)用程序也是如此。
一個(gè)集合不能有多于64個(gè)索引。
索引名的長度不能超過125個(gè)字符。
一個(gè)復(fù)合索引最多可以有31個(gè)字段被索引。