爲什麼MongoDB索引用B樹,而Mysql用B+樹?

引言

如果面試官問的是,爲什麼Mysql中Innodb的索引結構採取B+樹?這個問題時,給自己留一條後路,不要把B樹噴的一文不值。因爲網上有些答案是說,B樹不適合做文件存儲系統的索引結構。如果按照那種答法,自己就給自己挖了一個坑,很難收場。因此,就有了這篇文章的誕生~

正文

這裏的Mysql指的是Innodb的存儲引擎下的索引結構,其他存儲引擎我們暫時不討論。

B樹和B+樹

開頭,我們先回憶一下,B樹和B+樹的結構以及特點,如下所示:

B樹

 

注意一下B樹的兩個明顯特點

  • 樹內的每個節點都存儲數據

  • 葉子節點之間無指針相鄰

 

B+樹

 

注意一下B+樹的兩個明顯特點

  • 數據只出現在葉子節點

  • 所有葉子節點增加了一個鏈指針

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章