Oracle索引的類型
Oracle索引是Oracle中的重要概念,在這里就討論一下Oracle索引的分類,供您參考,如果您對Oracle索引方面感興趣的話,不妨一看。
邏輯上:
Single column 單行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函數(shù)索引
Domain 域索引
物理上:
Partitioned 分區(qū)索引
NonPartitioned 非分區(qū)索引
B-tree:
Normal 正常型B樹
Rever Key 反轉型B樹
Bitmap 位圖索引
索引結構:
B-tree:
適合與大量的增、刪、改(OLTP);
不能用包含OR操作符的查詢;
適合高基數(shù)的列(唯一值多)
典型的樹狀結構;
每個結點都是數(shù)據塊;
大多都是物理上一層、兩層或三層不定,邏輯上三層;
葉子塊數(shù)據是排序的,從左向右遞增;
在分支塊和根塊中放的是索引的范圍;
Bitmap:
適合與決策支持系統(tǒng);
做UPDATE代價非常高;
非常適合OR操作符的查詢;
基數(shù)比較少的時候才能建位圖索引;
樹型結構:
索引頭
開始ROWID,結束ROWID(先列出索引的***范圍)
BITMAP
每一個BIT對應著一個ROWID,它的值是1還是0,如果是1,表示著BIT對應的ROWID有值;
B*tree索引的話通常在訪問小數(shù)據量的情況下比較適用,比如你訪問不超過表中數(shù)據的5%,當然這只是個相對的比率,適用于一般的情況。bitmap的話在數(shù)據倉庫中使用較多,用于低基數(shù)列,比如性別之類重復值很多的字段,基數(shù)越小越好。
【編輯推薦】