天天看點

oracle 索引的概念

索引的概念

官方定義:索引是建立在表的一列或多列上的輔助對象。可以加快對表的通路速率。

索引類似書的目錄。

《轉》索引的分類

邏輯上: 

Single column 單行索引 

Concatenated 多行索引 

Unique 唯一索引 

NonUnique 非唯一索引 

Function-based函數索引 

Domain 域索引

實體上: 

Partitioned 分區索引 

NonPartitioned 非分區索引 

B-tree: 

Normal 正常型B樹 

Rever Key 反轉型B樹 

Bitmap 位圖索引

單行索引:

基于單個列所建立的索引

文法:  create index 索引名 on 表名(列名)

<a href="http://zhengweiit.blog.51cto.com/attachment/201103/17/1109863_1300347383mj4N.png"></a>

多行索引:

基于兩列或多列建立的索引,在一張表上可以有多個索引,但要求列的組合都不相同

例如:

<a href="http://zhengweiit.blog.51cto.com/attachment/201103/17/1109863_1300347383VPRe.png"></a>

唯一索引:

當這一列資料中,任意兩行的值都不相同,可以建立唯一索引。

當建立 primary key 或者 unique constraint時 唯一索引都會被自動建立

文法: create unique index 索引名 on 表名(列名);

<a href="http://zhengweiit.blog.51cto.com/attachment/201103/17/1109863_1300347384Mirj.png"></a>

非唯一索引

單行索引,多行索引,唯一索引,非唯一索引都屬于B*數索引,這種數索引适合索引DTP(動态)歡迎

索引兩大類,B*數索引和位圖索引

另外一種位圖索引适合大型靜态表倉庫環境

例如表中有很多重複的值,但很少去做改動時,适合建立位圖索引。

位圖索引以一種壓縮形式存放,是以占用空間較少。

文法:create bitmap index 索引名 on 表名(列1,列2…);

<a href="http://zhengweiit.blog.51cto.com/attachment/201103/17/1109863_1300347384icx5.png"></a>

本文轉自 鄭偉  51CTO部落格,原文連結:http://blog.51cto.com/zhengweiit/517798