各類Oracle索引類型介紹

邏輯上:
Single column 單行索引
Concatenated 多行索引
Unique 惟一索引
NonUnique 非惟一索引
Function-based函數索引
Domain 域索引

物理上:
Partitioned 分區索引
NonPartitioned 非分區索引
B-tree:
Normal 正常型B樹
Rever Key 反轉型B樹
Bitmap 位圖索引

索引結構:
B-tree:
適合與大量的增、刪、改(OLTP);
不能用包含OR操做符的查詢;
適合高基數的列(惟一值多)
典型的樹狀結構;
每一個結點都是數據塊;
大多都是物理上一層、兩層或三層不定,邏輯上三層;
葉子塊數據是排序的,從左向右遞增;
在分支塊和根塊中放的是索引的範圍;
Bitmap:
適合與決策支持系統;
作UPDATE代價很是高;
很是適合OR操做符的查詢;
基數比較少的時候才能建位圖索引;

樹型結構:
索引頭
開始ROWID,結束ROWID(先列出索引的最大範圍)
BITMAP
每個BIT對應着一個ROWID,它的值是1仍是0,若是是1,表示着BIT對應的ROWID有值


1. b-tree索引
Oracle數據庫中最多見的索引類型是b-tree索引,也就是B-樹索引,以其同名的計算科學結構命名。CREATE
INDEX語句時,默認就是在建立b-tree索引。沒有特別規定可用於任何狀況。
2. 位圖索引(bitmap index)
位圖索引特定於該列只有幾個枚舉值的狀況,好比性別字段,標示字段好比只有0和1的狀況。
3. 基於函數的索引
好比常常對某個字段作查詢的時候是帶函數操做的,那麼此時建一個函數索引就有價值了。
4. 分區索引和全局索引
這2個是用於分區表的時候。前者是分區內索引,後者是全表索引
5. 反向索引(REVERSE)
這個索引不常見,可是特定狀況特別有效,好比一個varchar(5)位字段(員工編號)含值
(10001,10002,10033,10005,10016..)
這種狀況默認索引分佈過於密集,不能利用好服務器的並行
可是反向以後10001,20001,33001,50001,61001就有了一個很好的分佈,能高效的利用好並行運算。
6.HASH索引
HASH索引多是訪問數據庫中數據的最快方法,但它也有自身的缺點。集羣鍵上不一樣值的數目必須在建立HASH集羣以前就要知道。須要在建立HASH集羣的時候指定這個值。使用HASH索引必需要使用HASH集羣。

1.邏輯結構:數據庫

所謂邏輯結構就是數據與數據之間的關聯關係,準確的說是數據元素之間的關聯關係。數組

注:全部的數據都是由數據元素構成,數據元素是數據的基本構成單位。而數據元素由多個數據項構成。服務器

邏輯結構有四種基本類型:集合結構、線性結構、樹狀結構和網絡結構。也能夠統一的分爲線性結構和非線性結構。網絡

2.物理結構:數據結構

數據的物理結構就是數據存儲在磁盤中的方式。官方語言爲:數據結構在計算機中的表示(又稱映像)稱爲數據的物理結構,或稱存儲結構。它所研究的是數據結構在計算機中的實現方法,包括數據結構中元素的表示及元素間關係的表示。函數

而物理結構通常有四種:順序存儲,鏈式存儲,散列,索引指針

3.邏輯結構的物理表示:code

線性表的順序存儲則能夠分爲靜態和非靜態:靜態存儲空間不可擴展,初始時就定義了存儲空間的大小,故而容易形成內存問題。orm

線性表的鏈式存儲:經過傳遞地址的方式存儲數據。排序

單鏈表:節點存儲下一個節點的地址-------------->單循環鏈表:尾節點存儲頭結點的地址

雙鏈表:節點存儲前一個和後一個節點的地址,存儲兩個地址。---------------->雙循環鏈表:尾節點存儲頭結點的地址。

4.高級語言應用:

數組是順序存儲

指針則是鏈式存儲

相關文章
相關標籤/搜索