多元索引提供了條件過濾、彙總、排序等功能,在建立多元索引後,使用SQL查詢時,系統能夠充分利用多元索引的計算能力,將部分SQL計算任務下推到多元索引執行,避免全表掃描,從而提高計算效率。
說明
關於多元索引的更多資訊,請參見多元索引介紹。
使用情境
如果多元索引包含SQL中涉及的資料列,則SQL引擎會通過多元索引讀取資料並下推多元索引支援的運算元。例如有一張表exampletable有a、b、c和d四列,多元索引中包含了b、c和d三列並均建立了索引,只有當SQL語句中只涉及b、c和d中的資料列時,才會通過多元索引讀取資料。
SELECT a, b, c, d FROM exampletable; /* 多元索引不包含a,b,c,d,掃描全表讀取資料,不支援運算元下推 */
SELECT b, c, d FROM exampletable; /* 多元索引包含b,c,d,通過多元索引讀取資料,支援運算元下推 */
前提條件
已建立多元索引。具體操作,請參見建立多元索引。
已建立映射關係。具體操作,請參見建立表的映射關係或建立多元索引的映射關係。
支援下推的運算元
當前SQL語句中支援下推到多元索引執行的運算元說明請參見下表。
運算元類型 | 下推運算元 | 下推限制 |
邏輯運算子 | AND、OR | 不支援NOT運算元下推。 |
關係運算子 | =、!=、<、<=、>、>=、BETWEEN ... AND ... | 只有資料列和常數的比較才支援運算元下推,不支援資料列和資料列比較的運算元下推。
|
彙總函式 |
| 彙總函式可以對全部資料或者GROUP BY分組中的資料進行彙總,只有彙總函式支援下推並且函數參數為資料列時才支援運算元下推。
|
LIMIT |
| ORDER BY的參數為資料列時才支援運算元下推。
|