溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Mysql 為什么要選擇 B+Tree

發(fā)布時間:2020-06-13 05:09:29 來源:網(wǎng)絡(luò) 閱讀:315 作者:kukelook 欄目:編程語言

Mysql 為什么要選擇 B+Tree算法對比

二叉樹

Mysql 為什么要選擇 B+Tree
當(dāng)我查找 8 的時候需要走五步

Mysql 為什么要選擇 B+Tree
紅黑樹

Mysql 為什么要選擇 B+Tree
當(dāng)我查詢8的時候需要四次 相對于二叉樹有了一些優(yōu)化 沒有無限延伸.紅黑樹的深度會很深(深度不可控制)

Mysql 為什么要選擇 B+Tree
hash

數(shù)據(jù)量大的話

Mysql 為什么要選擇 B+Tree
查詢很快(不能范圍查找)

BTree

Mysql 為什么要選擇 B+Tree
查詢只需要查兩步就可以找到,缺點攜帶(data)擴大橫向減少縱向深度

ps:java拿取數(shù)據(jù)一般是這樣的:java程序-->CPU--->內(nèi)存---->硬盤,而內(nèi)存與硬盤的交互是有大小限制的,是一頁數(shù)據(jù)4k左右,所以不能把所有數(shù)據(jù)都放在一個節(jié)點來獲取,一般來說節(jié)點會盡量預(yù)存4K容量。
Mysql 為什么要選擇 B+Tree
B+Tree

Mysql 為什么要選擇 B+Tree
Mysql 為什么要選擇 B+Tree

ps:data不放在非葉子節(jié)點來增加度(小節(jié)點),一般會一百個以上使得深度是3~5,從而減少查詢次數(shù)。并且,葉子節(jié)點之間會有指針,數(shù)據(jù)又是遞增的,這使得我們范圍查找可以通過指針連接查找,而不再從上面節(jié)點往下一個個找。既減少了查詢次數(shù),又提供了范圍查詢.

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI