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