對於資料庫,我們主要做到三點:查詢效率高、減少記憶體耗費、支援區間查詢,通過改造二叉查詢樹,我們發明了b+樹來儲存資料庫的索引
樹中節點只作為索引,每個葉子節點串在一條雙向鍊錶上,這樣我們想要查詢某個區間,只需要找到最小值,然後通過鍊錶遍歷即可。
上圖中每個節點至少占用索引值+兩個指標那麼大記憶體,如果十億個節點(20gb)計算機很可能裝不下。
我們可以通過把索引儲存在磁碟上解決記憶體耗費問題
通過把索引儲存在磁碟上解決了記憶體耗費問題,但相應的效率就會降低(記憶體訪問速度是磁碟的上萬倍)
為了減少磁碟訪問次數(也就是磁碟io操作),我們就需要降低樹的高度
資料結構與演算法 樹 B樹
概述 b樹也稱b 樹。b樹中所有結點中孩子結點個數的最大值成為b樹的階,通常用m表示,從查詢效率考慮,一般要求m 3。一棵m階b樹或者是一棵空樹,或者是滿足以下條件的m叉樹。定義 b樹是一種平衡的多分樹,通常我們說m階的b樹,它必須滿足如下條件 根結點至少有兩個子女。每個中間節點都包含k 1個元素和...
資料結構 B樹與B 樹
b樹 多路平衡查詢樹 b 樹 由二叉查詢樹進化而來 m叉查詢樹 由分塊查詢進化而來 多級分塊查詢 根節點的關鍵字範圍 1,m 1 根節點的關鍵字範圍 2,m n個關鍵字對應n 1個分支 n個關鍵字對應n個分支 關於分支是一樣的 根節點分支數範圍 2,m 除根節點外,其他節點數範圍 m 2,m 所有節...
經典資料結構 B樹與B 樹
小結 b樹 二叉樹,每個結點只儲存乙個關鍵字,等於則命中,小於走左結點,大於 走右結點 b 樹 多路搜尋樹,每個結點儲存m 2到m個關鍵字,非葉子結點儲存指向關鍵 字範圍的子結點 所有關鍵字在整顆樹 現,且只出現一次,非葉子結點可以命中 b 樹 在b 樹基礎上,為葉子結點增加鍊錶指標,所有關鍵字都在...