數據庫的應用類型分爲 數據庫
轉自:http://blog.csdn.net/kingzone_2008/article/details/8182792併發
數據存儲方式上分類: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
位圖索引不適合OLTP應用,OLTP應用須要處理大量併發的修改數據的事務。位圖索引更適合於基於數據倉庫的決策支持系統,由於決策支持系統主要是查詢數據而不是修改數據。位圖索引頁不適合於主要用於大於或小於比較的列,只適合於等式查詢,特別是AND,OR和NOT操做;大於和小於比較更適合採用B-tree索引。code
CREATE BITMAP INDEX 索引名 ON 表名 (列名);
果將這些記錄根據它們的某一列組織成B-tree結構,一個葉節點表明一條數據,那麼從n行的表中查詢一條記錄的平均用時爲log(n)。這就是Oracle數據庫索引的基本原理。blog
B-tree的分支節點包含到其子節點的索引。最低層節點(葉節點)包含了索引數據值和其對應的rowid,rowid用於定位對應的數據錶行。索引