為了高效的獲取數據,在數據量比較大的時候,我們需要給表中的某一列建立索引。
建立索引的作用主要有以下幾個:
(1)快速存取數據;
(2)改善數據庫性能,保證列值的唯一性;
(3)在使用order 排序
按照存儲方法可以將索引分為B*樹索引和位圖索引。
(1)B*樹索引:顧名思義其存儲類型就是一棵樹,有分支和葉,分支相當于書的大目錄,葉則相當于具體的書頁。Oracle用B*樹機制存儲索引條目,可以保證用最短路徑訪問鍵值。默認情況下大多使用B*樹索引。
(2)位圖索引:位圖索引存儲主要用于節省空間,減少Oracle對數據塊的訪問,它采用位圖偏移方式來與表的行id號對應,采用位圖索引一般是重復值太多的表字段。位圖索引在實際密集型OLTP(數據事務處理)中用得比較少,因為OLTP會對表進行大量的刪除、修改、添加操作,Oracle每次進行這些操作的時候都會對要操作的數據塊加鎖,以防止多人操作容易產生的數據塊鎖等待甚至死鎖現象。而在OLAP(數據分析處理)中應用位圖有優勢,因為OLAP中大部分是對數據庫的查詢操作,而且一般采用數據倉庫技術,所以大量數據采用位圖索引節省空間比較明顯。
下面說一下在Oracle中建立索引的語法格式:
create [unique | bitmap] index [schema.]indexName
on [schema.]tableName(columnName[ASC | DESC],...n)
[tablespace tablespaceName] [nosort] [reverse]
其中,unique指定索引所基于的列值必須唯一。默認的索引是非唯一索引。Oracle建議不要在表上顯示的定義unique索引。BITMAP指定建立位圖索引。
刪除索引的方法如下:
drop index indexName;
新聞熱點
疑難解答