B+ 樹是對 B 樹的一個小升級。大部分?jǐn)?shù)據(jù)庫的索引都是基于 B+ 樹存儲的。MySQL 的 MyISAM 和 InnoDB 引擎的索引都是基于 B+ 樹存儲。
創(chuàng)新互聯(lián)是一家專業(yè)提供土默特右旗企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為土默特右旗眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
B+ 樹最大的幾個特點:
1. 非葉子節(jié)點只保留 KEY,放棄 DATA;
2. KEY 和 DATA一起,在葉子節(jié)點,并且保存為一個有序鏈表(正序,反序,或者雙向);
3. B+ 樹的查找與 B 樹不同,當(dāng)某個結(jié)點的 KEY 與所查的 KEY 相等時,并不停止查找,而是沿著這個 KEY 左邊的指針向下,一直查到該關(guān)鍵字所在的葉子結(jié)點為止。
兩者的算法思路其實很像:比中間的小就在剩下的左邊,大就在剩下的右邊找 但是: 二叉樹查找一般習(xí)慣是在鏈?zhǔn)酱鎯ι线M行,為一個樹形結(jié)構(gòu) 二分查找一定在順序存儲上進行
在二叉樹中有一種平衡二叉樹,通過平衡算法可以讓二叉樹兩邊的節(jié)點平均分布,這樣就能讓所有的索引查找都在一個近似的時間內(nèi)完成。而MySQL這類數(shù)據(jù)庫采用了二叉樹的升級版B+Tree的形式,每個節(jié)點有三個支葉,不過其算法原理仍然是平衡樹的原理。