QQ小程序 索引管理

2020-07-09 16:57 更新

建立索引是保證數(shù)據(jù)庫性能、保證用戶體驗(yàn)的重要手段。我們應(yīng)為所有需要成為查詢條件的字段建立索引。建立索引的入口在控制臺中,可分別對各個集合的字段添加索引。

單字段索引

對需要作為查詢條件篩選的字段,我們可以創(chuàng)建單字段索引。如果需要對嵌套字段進(jìn)行索引,那么可以通過 "點(diǎn)表示法" 用點(diǎn)連接起嵌套字段的名稱。我們需要對如下格式的記錄中的 color 字段進(jìn)行索引時,可以用 style.color 表示。

{
  _id: '',
  style: {
    color: ''
  }
}

在設(shè)置單字段索引時,指定排序?yàn)樯蚧蚪敌虿]有關(guān)系。在需要對索引字段按排序查詢時,數(shù)據(jù)庫能夠正確的對字段排序,無論索引設(shè)置為升序還是降序。

組合索引

組合索引即一個索引包含多個字段。當(dāng)查詢條件使用的字段包含在索引定義的所有字段或前綴字段里時,會命中索引,優(yōu)化查詢性能。索引前綴即組合索引的字段中定義的前1到多個字段,如有在 A, B, C 三個字段定義的組合索引 A, B, C,那么 A 和 A, B 都屬于該索引的前綴。 組合索引具有以下特點(diǎn):

1. 字段順序決定索引效果

定義組合索引時,多個字段間的順序不同是會有不同的索引效果的。對兩個字段 A 和 B 進(jìn)行索引,定義組合索引為 A, B 與定義組合索引為 B, A 是不同的。當(dāng)定義組合索引為 A, B 時,索引會先按 A 字段排序再按 B 字段排序。因此當(dāng)組合索引設(shè)為 A, B 時,即使我們沒有單獨(dú)對字段 A 設(shè)立索引,但對字段 A 的查詢可以命中 A, B 索引。需要注意的是,此時對字段 B 的查詢是無法命中 A, B 索引的,因?yàn)?B 不屬于索引 A, B 的前綴之一。

2. 字段排序決定排序查詢是否可以命中索引

對字段 A 和 B 設(shè)置以下索引: A: 升序 B: 降序 當(dāng)您查詢需要對 A, B 進(jìn)行排序時,可以指定排序結(jié)果為 A 升序 B 降序或 A 降序 B 升序,但不能指定為 A 升序 B 升序或 A 降序 B 降序。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號