DB2索引類(lèi)型介紹
DB2數(shù)據(jù)庫(kù)中都有哪些索引類(lèi)型呢?下面就為您分類(lèi)介紹DB2索引類(lèi)型,如果您是剛剛接觸DB2數(shù)據(jù)庫(kù)的新人,不妨一看。
DB2索引類(lèi)型:
在介紹索引類(lèi)型前介紹一下關(guān)于稠密度的概念.
稠密度定義:在數(shù)據(jù)分布均勻的情況下,稠密度=數(shù)據(jù)分布的可能數(shù)/數(shù)據(jù)總條數(shù)。例如:表1中有索引1在列1上,其中列1的數(shù)據(jù)分布有10中,分別是1-10,數(shù)據(jù)接近均勻分布,總數(shù)據(jù)量為1000,則該索引的稠密度=100/1000=10%,稠密度最高為1。稠密度越小,索引的選擇性越大,查詢(xún)性能越好。
(1)非唯一索引
可以說(shuō)大部分的索引的非唯一索引,這和數(shù)據(jù)的分布有關(guān)系,一般的數(shù)據(jù)都具有可重復(fù)性特性,所以他們不能被定義為唯一索引。非唯一索引可以使用命令:
CREATE INDEX <IDX_NAME> ON <TAB_NAME> (<COLNAME>)來(lái)定義。
(2)唯一索引
唯一索引用來(lái)保證數(shù)據(jù)的唯一性,唯一索引一般性能要高于非唯一索引,這與索引的稠密度有關(guān)。唯一索引的稠密度永遠(yuǎn)等于數(shù)據(jù)總條數(shù)的倒數(shù)。
(3)純索引
純索引的概念是相對(duì)與一般索引。如下方式表中有倆個(gè)字段,其中字段1是唯一主鍵,字段2為數(shù)據(jù),實(shí)際的查詢(xún)中經(jīng)常是select * from 表 where col1=?
這樣的查詢(xún)條件可以使用純索引來(lái)避免表查詢(xún),具體創(chuàng)建命令為
CREATE UNIQUE INDEX <IDX_NAME> ON <TAB_NAME> (COL1_NAME) INCLUDE(COL2_NAME)。上述的語(yǔ)句的意思就是在col1上創(chuàng)建唯一索引,選擇包含col2的數(shù)據(jù),這些附加的數(shù)據(jù)將與鍵存儲(chǔ)到一起,但是不作為索引的一部分,所以不被排序。純索引訪問(wèn)是用來(lái)減少對(duì)數(shù)據(jù)頁(yè)的訪問(wèn),因?yàn)樗枰臄?shù)據(jù)已經(jīng)顯示在索引中了。
(4)群集索引
群集索引允許對(duì)數(shù)據(jù)頁(yè)采用更線(xiàn)性的訪問(wèn)模式,允許更有效的預(yù)取,并且避免排序。群集索引是要求數(shù)據(jù)在插入時(shí),做更多的操作,將相臨的數(shù)據(jù)條目放入相同的頁(yè),使得查詢(xún)速度更快,因?yàn)槊看卧L問(wèn)索引頁(yè)要將所有的索引條目都訪問(wèn)完畢才移到下一頁(yè),保證了緩存池中任何一個(gè)時(shí)刻都只有一個(gè)索引頁(yè)存在。
群集索引的特點(diǎn):
提高查詢(xún)速度,數(shù)據(jù)頁(yè)以鍵的順序排列;
以鍵的順序掃描整張表;
插入和更新需要做更多的事情,不建議經(jīng)常插入和更新的表上做群集索引;
【編輯推薦】
DB2分區(qū)數(shù)據(jù)庫(kù)的前滾操作