云數(shù)據(jù)庫 GaussDB索引設(shè)計規(guī)范
· 使用數(shù)據(jù)庫索引實踐推薦的索引類型。
索引設(shè)計建議使用推薦類型,如果需要使用禁用、不推薦、限制使用的索引類型,建議聯(lián)系GaussDB數(shù)據(jù)庫專家進行評估。
索引類型
|
說明
|
是否推薦
|
---|---|---|
主鍵/唯一索引 |
單列或多列主鍵/唯一索引 |
推薦 |
表達式索引 |
索引列為表的一列或多列計算而來的一個函數(shù)或者標量表達式 |
限制使用 |
· 對于HASH分布表,主鍵和唯一索引必須包含分布鍵。
· 合理設(shè)計組合索引,避免冗余。
例如已對(a,b,c)創(chuàng)建索引,則不應再單獨對 (a)、(b)、(c)、(a,b)、(b,c)創(chuàng)建索引。
當查詢時如果只帶有a字段上的過濾條件,一般也會利用組合索引進行查詢。
· 不建議單表創(chuàng)建多個唯一索引。
同時維護多個唯一索引的開銷遠大于維護一個多列唯一索引,如果業(yè)務邏輯上多個唯一索引,與一個多列唯一索引等價,應使用多列唯一索引。
· 組合索引字段個數(shù)不超過5個。
· 禁止組合索引組合字符串的總長度超過200。
· 索引(包括單列索引和復合索引)字段應為NOT NULL字段。
· 同字段上創(chuàng)建索引的維護效率不同。數(shù)值類型字段優(yōu)于字符類型及其他數(shù)據(jù)類型,因此對于考慮創(chuàng)建索引的ID、時間等字段,建議使用數(shù)值類型進行存儲。
· 建議在關(guān)聯(lián)列上創(chuàng)建索引。
GaussDB支持HASH JOIN,但是當內(nèi)表較小等RESCAN代價較低的情況下,仍然可能選擇NESTLOOP JOIN來完成關(guān)聯(lián)。如果通過EXPLAIN可以查看到NESTLOOP JOIN計劃,則可以通過在關(guān)聯(lián)列上創(chuàng)建索引,提高NESTLOOP JOIN效率。
云數(shù)據(jù)庫GaussDB常見問題解答
云數(shù)據(jù)庫GaussDB常見問題解答
專題內(nèi)容推薦
活動對象:華為云電銷客戶及渠道伙伴客戶可參與消費滿送活動,其他客戶參與前請咨詢客戶經(jīng)理
活動時間: 2020年8月12日-2020年9月11日
活動期間,華為云用戶通過活動頁面購買云服務,或使用上云禮包優(yōu)惠券在華為云官網(wǎng)新購云服務,累計新購實付付費金額達到一定額度,可兌換相應的實物禮品?;顒觾?yōu)惠券可在本活動頁面中“上云禮包”等方式獲取,在華為云官網(wǎng)直接購買(未使用年中云鉅惠活動優(yōu)惠券)或參與其他活動的訂單付費金額不計入統(tǒng)計范圍內(nèi);