Mysql數據庫的索引有Btree和Hash。
B+tree,加強版多路平衡查找樹,一般採用Balance Tree結構存儲,數據都存儲在了葉子節點,檢索時需要從根節點到葉子節點;
Hash是進行Hash運算後進行查找,查找效率非常高,但只能用於等值查詢,不能用於範圍查找(<、>),另外如果遇到大量Hash值相同時,效率不一定比Btree效率高。Hash不能範圍查找是硬傷。
B+tree是Btree的加強版,Btree有的特性B+tree都有,B+ tree把數據都存儲在了葉子節點。
實際開發中,一般採用Btree索引的查詢效率就能滿足需求。
另外系統的文件管理也用到了基於Btree的索引查找。