參考文檔:https://wenku.baidu.com/view/d4d6ee1ba76e58fafab00336.html
https://blog.csdn.net/u010719917/article/details/12192387
https://baike.baidu.com/item/B-tree/6606402#5
oracle索引分為:b*tree索引(b樹索引),bitmap索引(位圖索引),反向索引,降序索引,函數索引
*)b*tree索引
b是指balance。幾乎所有的關系型數據庫(比如MySQL、informix)都有b*tree索引,也就是“普通索引”。普通索引的結構是b*tree數據結構算法,索引類似目錄,目錄嘛,本來就是類似樹的結構。
b*tree:多路搜索樹,類似二叉樹,但每個節點可以有多個子節點。
有b+tree和b-tree。B+和B-(即B)是因為每個結點上的關鍵字不同。一個多一個,一個少一個。
**)使用:b*tree索引是最常使用的。
*)bitmap索引
位圖索引適用於:列的唯一值除以行數為一個很小的值,接近0。通常是性別這樣的字段。比如:性別的值有Male,female,null 三種,但這個表有300W條記錄,3/300W≈0。這種情況下最適合用位圖索引。
*)反向索引
反轉了b*tree索引碼中的字節,使索引條目分配更均勻,多用於並行服務器環境下,用於減少索引葉的競爭。
*)降序索引
b*tree索引的延伸:數據庫列的值在索引樹中的排序從升序變成了降序,在某些情況下將會產生作用。
