引言
如果面試官問的是,爲什麼Mysql中Innodb的索引結構採取B+樹?這個問題時,給自己留一條後路,不要把B樹噴的一文不值。因爲網上有些答案是說,B樹不適合做文件存儲系統的索引結構。如果按照那種答法,自己就給自己挖了一個坑,很難收場。因此,就有了這篇文章的誕生~
正文
這裏的Mysql指的是Innodb的存儲引擎下的索引結構,其他存儲引擎我們暫時不討論。
B樹和B+樹
開頭,我們先回憶一下,B樹和B+樹的結構以及特點,如下所示:
B樹
注意一下B樹的兩個明顯特點
-
樹內的每個節點都存儲數據
-
葉子節點之間無指針相鄰
B+樹
注意一下B+樹的兩個明顯特點
-
數據只出現在葉子節點
-
所有葉子節點增加了一個鏈指針