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