oracle索引分類

2021-06-01 00:41:44 字數 2483 閱讀 4148

b-tree index,b樹索引:在建立索引時他是預設的索引型別,b樹索引可以使單一列(簡單)的索引,也可以是多個列(組合/復合)的索引。最多可以包括32列。適合:1,訪問表中佔很小比例的行,這樣就可以使用索引快速定位。 2,根本不訪問表,所需查詢的資料全部在索引中,比如查詢的列就是索引,這樣直接訪問索引就可以得到結果。,多使用在oltp系統中。

create index index_test01 on test01(id);

bitmap-index,位圖索引:是在列的值重複的非常多的情況下使用。當大多數條目比不會向位圖新增新的值時,位圖索引在載入表時比b樹索引做的好。由於位圖索引最大的用處就是當列值有很多重複的時候,所以他不能被宣告成唯一索引。當使用alter table修改有位圖索引的列的時候,位圖索引失效,需重建索引。位圖索引裡是101010這類的,所以是不包含任何列資料的。

create bitmap index index_name on normal_index_creation_clause;

反轉建索引:當載入一些有序索引的時候,索引集中分布,如果資料使用的索引集中在乙個資料塊則會發生爭用,這是可以將索引反轉,reverse。

hash索引:使用hash索引必須使用hash集群。建立cluster的同時也建立了hash索引。

建立反序索引

createindex idx_reverse on customer(col1,col2) reverse;

修改

index

為reverseindex

alterindex index_name rebuild reverse;

function index ,基於函式的索引:當查詢的列上使用了函式之後就不能使用原來的索引了,但是可以建立函式索引,使建立在函式上的索引可以使用。在優化器中,必須將引數query_rewrite_enabled設為true。

create index index_fun_test05 on test05(substr(id,1,1)

分割槽索引:本地分割槽索引,全域性分割槽索引。

本地分割槽索引:可以使用與表相同的分割槽鍵和範圍界限來對本地索引分割槽。每個本地索引的分割槽只包含了他所關聯的表分割槽的鍵和rowid。本地分割槽索引又分為有字首索引和無字首索引。有字首索引:包含了來自分割槽鍵的鍵,並把它們作為索引的前導,相當於索引的分割槽都使用表相同範圍的界限來建立的。沒有包含在where子句中的值的分割槽是不會被訪問到的,這樣也提高了子句的效能。  無字尾索引:可以在表的任何一列建立無字首的索引,但是索引的每個分割槽只包含表的相應分割槽的兼職。

全域性分割槽索引是在乙個索引分割槽包含來自多個表分割槽的鍵。在建立全域性分割槽索引的時候,必須定義分割槽鍵的範圍。只能是b樹索引。如果乙個分割槽被擷取,增加,分割,刪除等,就必須重建索引。全域性有字首索引沒經過對等分割槽。

索引聚簇表

聚簇是指:如果一組表有一些共同的列,則將這樣一組表儲存在相同的資料庫塊中;聚簇還表示把相關的資料儲存在同乙個塊上。利用聚簇,乙個塊可能包含多個表的資料。概念上就是如果兩個或多個表經常做鏈結操作,那麼可以把需要的資料預先儲存在一起

create table dept

( deptno number(2) primary key, 3 dname varchar2(14),

loc varchar2(13))

cluster emp_dept_cluster(deptno);

create table emp

( empno number primary key,ename varchar2(10),job varchar2(9),mgr number,hiredate date,sal number,comm number,

deptno number(2) constraint emp_fk references dept(deptno))

cluster emp_dept_cluster(deptno);

oracle索引分類

邏輯上 single column 單列索引 concatenated 多列索引 unique 唯一索引 nonunique 非唯一索引 function based函式索引 domain 域索引 物理上 partitioned 分割槽索引 nonpartitioned 非分割槽索引 b tree ...

oracle索引分類

參考文件 oracle索引分為 b tree索引 b樹索引 bitmap索引 位圖索引 反向索引,降序索引,函式索引 b tree索引 b是指balance。幾乎所有的關係型資料庫 比如mysql informix 都有b tree索引,也就是 普通索引 普通索引的結構是b tree資料結構演算法,...

oracle索引分類

邏輯上 single column 單列索引 concatenated 多列索引 unique 唯一索引 nonunique 非唯一索引 function based函式索引 domain 域索引 物理上 partitioned 分割槽索引 nonpartitioned 非分割槽索引 b tree ...