1. 程式人生 > >【MongoDB】索引技術總結

【MongoDB】索引技術總結

MongoDB的索引被用於查詢(find、findOne)和排序。如果傾向於在集合中大量使用排序,那麼應該根據排序的需求新增索引。

目前,每個集合中最多可以擁有64個索引。

一、顯示索引

  1. MongoDB提供了一個簡單的輔助函式getIndexes(),可以顯示指定集合中的索引。
  2. MongoDB在每個資料庫中都維護了一個特有的集合,名為system.indexes。該集合將記錄在資料庫中的所有集合上建立的全部索引。
  3. 當在某個元素上定義索引時,MongoDB將構造一個內部的二叉樹索引,並用它高效地定位文件,如果未找到合適的索引,MongoDB將掃描集合中的所有文件,搜尋滿足查詢的記錄。

二、建立簡單的索引

  1. MongoDB提供了ensureIndex()函式,用於向集合中新增新的索引。該函式首先將檢查在目前的集合中是否已經建立了該索引。如果是,那麼ensureIndex()只是返回該索引。
  2. 如果指定的文件欄位是陣列型別,那麼該索引將陣列中的所有元素作為不同的索引條目新增到其中。這被稱為多鍵索引,每個文件都將被連結到索引中的多個值。

三、指定索引選項

  1. 使用{background:true}在後臺建立索引
  2. 使用{unique:true}建立唯一鍵索引
  3. 使用{dropdups:true}自動去重
  4. 使用{sparse:true}建立稀疏索引