再看mysql中索引的原理,發現使用b+ tree實現的。所以對b數知識點做一下梳理:
網上已經有很多寫的不錯的 b tree 和 b+ tree講解,這裡不再重複造輪子,傳送門:
btree 知識點
出現背景(個人理解):二叉查詢樹,雖然相對於其他查詢方式有了一定的效能提公升,但是在樹的深度很大的時候,就需要多次的磁碟i\o。這時,需要乙個節點中可以儲存更多資料的樹,去減少相同資料量下樹的深度;
二叉樹知識點學習
以m階的b樹為例:
節點的子節點數(稱為:k): m => k>=m/2(向上取整)
節點中值的數量範圍: k-1
(1)節點中可以儲存更多的資料,且資料從小到大排列;
(2)所有的葉子節點都在同一行中;
優:相同空間可以儲存更多的資料(相對於b - 樹);
在範圍查詢時,需要的磁碟 i\o次數更少;(葉子節點是乙個鍊錶結構)
BTree和B Tree 簡單區別
本篇作用於各種樹之間的區別,非演算法詳細介紹,只是給我們這種非科班出身的一種大概的印象,現在網上更多是講各種樹的怎麼實現的細節問題,本篇不涉及那麼高深,如果詳細了解可以查閱他人的資料,很多大神已經說的很多了 二叉樹效果 這個是我們想象中的本應該的樹的資料結構。可是他存在一種極端的情況 他的查詢效率就...
BTree和B Tree 簡單區別
本篇作用於各種樹之間的區別,非演算法詳細介紹,只是給我們這種非科班出身的一種大概的印象,現在網上更多是講各種樹的怎麼實現的細節問題,本篇不涉及那麼高深,如果詳細了解可以查閱他人的資料,很多大神已經說的很多了 二叉樹效果 這個是我們想象中的本應該的樹的資料結構。可是他存在一種極端的情況 他的查詢效率就...
(面試)B Tree和B Tree的性質和區別
b tree指的是 balance tree,也就是平衡樹。平衡樹是一顆查詢樹,並且所有葉子節點位於同一層。b tree 是基於 b tree 和葉子節點順序訪問指標進行實現,它具有 b tree 的平衡性,並且通過順序訪問指標來提高 區間查詢的效能。b tree的性質 一棵m階的b tree有如下...