1. 程式人生 > >MySQL資料庫為什麼大多使用B+樹,而不是用Hash儲存索引

MySQL資料庫為什麼大多使用B+樹,而不是用Hash儲存索引

通常B+資料的查詢時間為log(n),而利用Hash時間為o(1),那為什麼還要用B+樹呢。

對於B+樹,相比於Hash好處:

1.利用Hash需要把資料全部載入到記憶體中,如果資料量大,是一件很消耗記憶體的事,而採用B+樹,是基於按照節點分段載入,由此減少記憶體消耗。

2.和業務場景有段,對於唯一查詢(查詢一個值),Hash確實更快,但資料庫中經常查詢多條資料,這時候由於B+資料的有序性,與葉子節點又有連結串列相連,他的查詢效率會比Hash快的多。

而有關B、B+資料的資料結構請轉移

MySQL索引原理及BTree(B-/+Tree)結構詳解

b、b+樹結構詳解