oracle四大索引类型,各种Oracle索引类型介绍
邏輯上:
Single column 單行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函數(shù)索引
Domain 域索引
物理上:
Partitioned 分區(qū)索引
NonPartitioned 非分區(qū)索引
B-tree:
Normal 正常型B樹
Rever Key 反轉(zhuǎn)型B樹
Bitmap 位圖索引
索引結(jié)構(gòu):
B-tree:
適合與大量的增、刪、改(OLTP);
不能用包含OR操作符的查詢;
適合高基數(shù)的列(唯一值多)
典型的樹狀結(jié)構(gòu);
每個(gè)結(jié)點(diǎn)都是數(shù)據(jù)塊;
大多都是物理上一層、兩層或三層不定,邏輯上三層;
葉子塊數(shù)據(jù)是排序的,從左向右遞增;
在分支塊和根塊中放的是索引的范圍;
Bitmap:
適合與決策支持系統(tǒng);
做UPDATE代價(jià)非常高;
非常適合OR操作符的查詢;
基數(shù)比較少的時(shí)候才能建位圖索引;
樹型結(jié)構(gòu):
索引頭
開始ROWID,結(jié)束ROWID(先列出索引的最大范圍)
BITMAP
每一個(gè)BIT對(duì)應(yīng)著一個(gè)ROWID,它的值是1還是0,如果是1,表示著BIT對(duì)應(yīng)的ROWID有值
1. b-tree索引
Oracle數(shù)據(jù)庫中最常見的索引類型是b-tree索引,也就是B-樹索引,以其同名的計(jì)算科學(xué)結(jié)構(gòu)命名。CREATE
INDEX語句時(shí),默認(rèn)就是在創(chuàng)建b-tree索引。沒有特別規(guī)定可用于任何情況。
2. 位圖索引(bitmap index)
位圖索引特定于該列只有幾個(gè)枚舉值的情況,比如性別字段,標(biāo)示字段比如只有0和1的情況。
3. 基于函數(shù)的索引
比如經(jīng)常對(duì)某個(gè)字段做查詢的時(shí)候是帶函數(shù)操作的,那么此時(shí)建一個(gè)函數(shù)索引就有價(jià)值了。
4. 分區(qū)索引和全局索引
這2個(gè)是用于分區(qū)表的時(shí)候。前者是分區(qū)內(nèi)索引,后者是全表索引
5. 反向索引(REVERSE)
這個(gè)索引不常見,但是特定情況特別有效,比如一個(gè)varchar(5)位字段(員工編號(hào))含值
(10001,10002,10033,10005,10016..)
這種情況默認(rèn)索引分布過于密集,不能利用好服務(wù)器的并行
但是反向之后10001,20001,33001,50001,61001就有了一個(gè)很好的分布,能高效的利用好并行運(yùn)算。
6.HASH索引
HASH索引可能是訪問數(shù)據(jù)庫中數(shù)據(jù)的最快方法,但它也有自身的缺點(diǎn)。集群鍵上不同值的數(shù)目必須在創(chuàng)建HASH集群之前就要知道。需要在創(chuàng)建HASH集群的時(shí)候指定這個(gè)值。使用HASH索引必須要使用HASH集群。
1.邏輯結(jié)構(gòu):
所謂邏輯結(jié)構(gòu)就是數(shù)據(jù)與數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,準(zhǔn)確的說是數(shù)據(jù)元素之間的關(guān)聯(lián)關(guān)系。
注:所有的數(shù)據(jù)都是由數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素是數(shù)據(jù)的基本構(gòu)成單位。而數(shù)據(jù)元素由多個(gè)數(shù)據(jù)項(xiàng)構(gòu)成。
邏輯結(jié)構(gòu)有四種基本類型:集合結(jié)構(gòu)、線性結(jié)構(gòu)、樹狀結(jié)構(gòu)和網(wǎng)絡(luò)結(jié)構(gòu)。也可以統(tǒng)一的分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。
2.物理結(jié)構(gòu):
數(shù)據(jù)的物理結(jié)構(gòu)就是數(shù)據(jù)存儲(chǔ)在磁盤中的方式。官方語言為:數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的表示(又稱映像)稱為數(shù)據(jù)的物理結(jié)構(gòu),或稱存儲(chǔ)結(jié)構(gòu)。它所研究的是數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的實(shí)現(xiàn)方法,包括數(shù)據(jù)結(jié)構(gòu)中元素的表示及元素間關(guān)系的表示。
而物理結(jié)構(gòu)一般有四種:順序存儲(chǔ),鏈?zhǔn)酱鎯?chǔ),散列,索引
3.邏輯結(jié)構(gòu)的物理表示:
線性表的順序存儲(chǔ)則可以分為靜態(tài)和非靜態(tài):靜態(tài)存儲(chǔ)空間不可擴(kuò)展,初始時(shí)就定義了存儲(chǔ)空間的大小,故而容易造成內(nèi)存問題。
線性表的鏈?zhǔn)酱鎯?chǔ):通過傳遞地址的方式存儲(chǔ)數(shù)據(jù)。
單鏈表:節(jié)點(diǎn)存儲(chǔ)下一個(gè)節(jié)點(diǎn)的地址-------------->單循環(huán)鏈表:尾節(jié)點(diǎn)存儲(chǔ)頭結(jié)點(diǎn)的地址
雙鏈表:節(jié)點(diǎn)存儲(chǔ)前一個(gè)和后一個(gè)節(jié)點(diǎn)的地址,存儲(chǔ)兩個(gè)地址。---------------->雙循環(huán)鏈表:尾節(jié)點(diǎn)存儲(chǔ)頭結(jié)點(diǎn)的地址。
4.高級(jí)語言應(yīng)用:
數(shù)組是順序存儲(chǔ)
指針則是鏈?zhǔn)酱鎯?chǔ)
總結(jié)
以上是生活随笔為你收集整理的oracle四大索引类型,各种Oracle索引类型介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于微信小程序的考勤打卡系统
- 下一篇: oracle 索引问题梳理