【轉】Oracle索引的類型

數據庫的應用類型分爲 數據庫

  1. OLTP(OnLine Transaction Processing ,聯機事務處理):OLTP是傳統關係型數據庫的主要應用,其主要面向基本的、平常的事務處理,例如銀行交易。
  2. OLAP(OnLine Analysis Processing,聯機分析處理):OLAP是數據倉庫系統的主要應用,支持複雜的分析操做,側重決策支持,而且提供直觀易懂的查詢結果。

轉自:http://blog.csdn.net/kingzone_2008/article/details/8182792併發

數據存儲方式上分類:B-樹索引、反向索引、位圖索引函數

  • B-樹索引創建在重複值不多的列上
  • 位圖索引創建在重複值不少、不一樣值相對固定的列上。

索引列的個數分:單列索引、複合索引;性能

基於函數的索引

-- 基本結構  
CREATE [UNIQUE] INDEX index_name  
  ON table_name (function1, function2, . function_n)  
  [ COMPUTE STATISTICS ];  
  
-- 例子  
CREATE INDEX supplier_idx  
  ON supplier (UPPER(supplier_name));

位圖索引

目前大量使用的索引通常主要是B-Tree索引,在索引結構中存儲着鍵值和鍵值的RowID,而且是一一對應的。而位圖索引主要針對大量相同值的列而建立,例如:類別,操做員,部門ID等。位圖索引因爲只存儲鍵值的起止Rowid和位圖,佔用的空間很是少。spa

位圖索引很是適合於數據倉庫應用,由於數據倉庫處理的是大量即席查詢,幾乎沒有併發的事務。位圖索引提供如下優點:.net

  • 縮短了即席查詢的相應時間
  • 比其餘索引技術節省存儲空間
  • 高性能
  • 高效的並行DML和加載

位圖索引不適合OLTP應用,OLTP應用須要處理大量併發的修改數據的事務。位圖索引更適合於基於數據倉庫的決策支持系統,由於決策支持系統主要是查詢數據而不是修改數據。位圖索引頁不適合於主要用於大於或小於比較的列,只適合於等式查詢,特別是AND,OR和NOT操做;大於和小於比較更適合採用B-tree索引。code

CREATE BITMAP INDEX 索引名 ON 表名 (列名);

Oracle索引的實現

果將這些記錄根據它們的某一列組織成B-tree結構,一個葉節點表明一條數據,那麼從n行的表中查詢一條記錄的平均用時爲log(n)。這就是Oracle數據庫索引的基本原理。blog

B-tree的分支節點包含到其子節點的索引。最低層節點(葉節點)包含了索引數據值和其對應的rowid,rowid用於定位對應的數據錶行。索引

相關文章
相關標籤/搜索