1. 程式人生 > >Oracle中索引及空間索引的總結整理

Oracle中索引及空間索引的總結整理

索引:對資料庫表中的某些列進行排序,便於提高查詢效率。索引與表一樣,也屬於段(segment)的一種。裡面存放了使用者的資料,跟表一樣需要佔用磁碟空間。索引是一種允許直接訪問資料表中某一資料行的樹型結構,為了提高查詢效率而引入,是一個獨立於表的物件,可以存放在與表不同的表空間中。索引記錄中存有索引關鍵字和指向表中資料的指標(地址)。對索引進行的I/O操作比對錶進行操作要少很多。索引一旦被建立就將被Oracle系統自動維護,查詢語句中不用指定使用哪個索引。

索引儲存了索引列和ROWID

建設原則:

1、索引應該經常建在Where 子句經常用到的列上。如果某個大表經常使用某個欄位進行查詢,並且檢索行數小於總錶行數的

5%。則應該考慮。

2、對於兩表連線的欄位,應該建立索引。如果經常在某表的一個欄位進行Order By 則也應該考慮建立索引。

3、不應該在小表上建設索引。

優缺點:索引主要進行提高資料的查詢速度。當進行DML時,會更新索引。因此索引越多,則DML越慢,其需要維護索引。因此在建立索引及DML需要權衡。

單一索引:Create Index<Index-Name> On <Table_Name>(Column_Name)。

複合索引: Create Indexi_deptno_job on emp(deptno,job); —>emp表的deptnojob列建立索引。

唯一索引:

CREATE UNIQUEINDEX UQ_ENAME_IDX ON EMP(ENAME)。

空間資料索引空間索引是對儲存在介質上的資料位置資訊的描述,因此係統的設計者必須將資料在磁碟上的位置加以記錄和組織,通過在記憶體中的一些計算來取代對磁碟漫無目的的訪問,才能提高系統的效率,尤其是GIS涉及的是各種海量的複雜資料,索引對於處理的效率是至關重要的,用來提高系統對資料獲取的效率。