MongoDB - 索引限制



在本章中,我們將學習索引限制及其其他元件。

額外開銷

每個索引都會佔用一些空間,並在每次插入、更新和刪除時造成開銷。因此,如果您很少將集合用於讀取操作,則沒有必要使用索引。

RAM 使用

由於索引儲存在 RAM 中,因此您應確保索引的總大小不超過 RAM 限制。如果總大小超過 RAM 大小,它將開始刪除某些索引,導致效能下降。

查詢限制

索引不能用於使用以下內容的查詢:

  • 正則表示式或否定運算子,如 $nin、$not 等。
  • 算術運算子,如 $mod 等。
  • $where 子句

因此,始終建議檢查查詢的索引使用情況。

索引鍵限制

從 2.6 版開始,如果現有索引欄位的值超過索引鍵限制,MongoDB 將不會建立索引。

插入超過索引鍵限制的文件

如果文件的索引欄位值超過索引鍵限制,MongoDB 將不會將任何文件插入到已索引的集合中。mongorestore 和 mongoimport 實用程式也是如此。

最大範圍

  • 一個集合最多隻能有 64 個索引。
  • 索引名稱的長度不能超過 125 個字元。
  • 複合索引最多可以索引 31 個欄位。
廣告