B+樹為何作為索引存儲(chǔ)結(jié)構(gòu)

前言

本文章主要說明,相比較B樹和平衡二叉樹,B+樹作為數(shù)據(jù)庫的索引的數(shù)據(jù)結(jié)構(gòu)優(yōu)勢在哪

平衡二叉樹的劣勢

數(shù)據(jù)庫作為存儲(chǔ)數(shù)據(jù)的工具,常常會(huì)存儲(chǔ)大量數(shù)據(jù)。而數(shù)據(jù)最終存儲(chǔ)的物理媒介便是磁盤。如果使用平衡二叉樹,那么當(dāng)數(shù)據(jù)量很大時(shí),樹的深度也會(huì)很深。在磁盤存儲(chǔ)時(shí),樹的每一個(gè)節(jié)點(diǎn)會(huì)存儲(chǔ)在一個(gè)數(shù)據(jù)塊中,約高的樹,在搜索一個(gè)數(shù)據(jù)時(shí)遍歷的節(jié)點(diǎn)越多,此時(shí)需要進(jìn)行磁盤IO的次數(shù)就越多,那么所耗費(fèi)的時(shí)間就越多。平衡二叉樹作為一種高瘦的數(shù),在這點(diǎn)上就比不了矮胖的B樹和B+樹

B樹與B+樹的對比

B樹與B+樹最重要的兩點(diǎn)區(qū)別是:

  1. B+樹只在葉子節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù),在非葉節(jié)點(diǎn)只有關(guān)鍵字
  2. B+樹所有葉子在同一層,包含了全部關(guān)鍵字信息,葉子節(jié)點(diǎn)按照關(guān)鍵字的大小自小而大順序鏈接
    針對上面兩種不同,B+樹便顯示出比B樹更多的優(yōu)勢
    因?yàn)闂l件1:
    B+樹在搜索數(shù)據(jù)時(shí),每次都需要搜索到葉子節(jié)點(diǎn),這保證了B+樹查找時(shí)間的穩(wěn)定性
    B+樹在一個(gè)數(shù)據(jù)塊中可以存儲(chǔ)更多的關(guān)鍵字信息
    因?yàn)闂l件2:
    B+樹更適合范圍查找,只要查找到最小值便可直接在葉子節(jié)點(diǎn)進(jìn)行遍歷獲取

參考文獻(xiàn)
B+樹在磁盤存儲(chǔ)中的應(yīng)用
漫畫算法:什么是 B 樹?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容