Oracle 資料庫中的索引

2021-07-17 01:17:32 字數 1069 閱讀 6167

在oracle資料庫中的資料, 每一行都是用rowid來標識的,rowid能夠標識資料庫中的某一行的具體位置,在資料庫中存有大量資料時, 要能找找到具體的某乙個資料(rowid),這個時候就需要索引物件。

1)索引的工作原理:  在乙個擁有大量資料的表中進行查詢時, 如果沒有建立索引,肯定會全表查詢, 然後再將查詢出的每一行資料和查詢條件進行比對,最後返回滿足條件的記錄

建立索引之後:只需要在索引中找到符合查詢條件欄位的值, 然後再通過儲存在索引中的rowid快速找到資料庫對應的記錄。

比喻:如果將索引比作一本書的話, 那麼索引就是這本書的目錄。在沒有目錄的情況下,要查詢到指定的類容,必須要閱讀全文,有了目錄之後, 可以通過目錄很快地找到指定類容。

2)建立索引的原則:

索引應該建立在where字句經常用的列上,並且這些列作為查詢條件查詢的資料,佔整個表資料低於15%,那麼這些列可以建立索引。

經常使用某些列作為查詢條件

對於多表查詢,應該把索引建立在連線的列上

3)常用到的建立索引的方式:

單列索引:在乙個列上建立的索引,比如:

-- oracle預設建立b-tree索引  

create index 索引名 on 表名(列名)

復合索引:在兩列或多列上建立的索引。在同一張表上可以有多個索引,但是這些索引所包含的列的組合必須不完全相同

create index emp_idx1 on emp(ename, job);  

create index emp_idx2 on emp(job, ename);

不恰當的索引反而會降低系統效能,比如:很少或從不引用的字段;邏輯型字段,如男或女(是或否)等,因為:建立索引提高查詢效率是以消耗一定的系統資源(額外的儲存和增刪改操作額外的索引更新時間)為代價的

4)索引的分類:分為b-樹索引、反向索引、位圖索引,b-樹索引建立在重複值很少的列上,位圖索引建立在重複值很多、不同值相對固定的列上。

按照索引列的個數,分為單列索引、復合索引;

按照索引列值的唯一性,分為唯一索引、非唯一索引。

此外還有函式索引、全域性索引、分割槽索引等。

Oracle資料庫中的索引(一)

oracle中的索引非常多,也非常複雜,但是對於oracle的開發人員和系統管理員來說,索引至關重要,因為使用了恰當的索引,將會大大提高資料庫的訪問效能,否則就有可能使系統處於泥潭當中,不能自拔。這篇文章只是自己的總結,不可能對oracle當中的所有索引都進行剖析 也沒有這個能力 希望能對你有所幫助...

Oracle資料庫索引

標籤 資料庫 oracle 索引index 2013 06 14 16 54 4148人閱讀收藏 舉報 database 6 目錄 索引基本概念 索引的作用 索引的架構 oracle索引的型別 1 基於函式的索引 2 位圖索引 oracle索引的實現 索引是用於加速資料訪問的資料物件,合理的使用索引...

Oracle資料庫 索引

索引通過指標的形式提高資料查詢的速度。如果乙個資料量比較大的資料庫經常被查詢而插入刪除的次數較少,則應該建立索引,相反,小表或經常被插入或修改,則不建議建立索引。1.建立索引 create index emp phone number ix on employees phone number 2.建...