天天看點

Oracle——03索引

在查中文字典的時候,我們之是以能夠很快的查到所要查找的字是因為字典建立了索引。同樣,為了高效的擷取資料,在資料量比較大的時候,我們需要給表中的某一列建立索引。

建立索引的作用是明顯的,主要有:

1、快速存取資料

2、改善資料庫性能,保證列值的唯一性

3、在使用order 

按照存儲方法可以将索引分為B*樹索引和位圖索引。

B*樹索引:顧名思義其存儲類型就是一棵樹,有分支和葉,分支相當于書的大目錄,葉則相當于具體的書頁。Oracle用B*樹機制存儲索引條目,可以保證用最短路徑通路鍵值。預設情況下大多使用B*樹索引。

位圖索引:位圖索引存儲主要用于節省空間,減少Oracle對資料塊的通路,它采用位圖偏移方式來與表的行id号對應,采用位圖索引一般是重複值太多的表字段。位圖索引在實際密集型OLTP(資料事務處理)中用得比較少,因為OLTP會對表進行大量的删除、修改、添加操作,Oracle每次進行這些操作的時候都會對要操作的資料塊加鎖,以防止多人操作容易産生的資料塊鎖等待甚至死鎖現象。而在OLAP(資料分析處理)中應用位圖有優勢,因為OLAP中大部分是對資料庫的查詢操作,而且一般采用資料倉庫技術,是以大量資料采用位圖索引節省空間比較明顯。 

建立索引:

文法格式:

其中,unique指定索引所基于的列值必須唯一。預設的索引是非唯一索引。Oracle建議不要在表上顯示的定義unique索引。BITMAP指定建立位圖索引。 

删除索引: