B 樹和 B+樹的區別, 為什麼 MySQL 要使用 B+樹
B 樹:
(1) 關鍵字集合分佈在整顆樹中;
(2) 任何一個關鍵字出現且只出現在一個結點中;
(3) 搜尋有可能在非葉子結點結束;
(4) 其搜尋效能等價於在關鍵字全集內做一次二分查詢;
B+樹:
(1) 有 n 棵子樹的非葉子結點中含有 n 個關鍵字( b 樹是 n-1 個) , 這些關鍵字不保
存資料, 只用來索引, 所有資料都儲存在葉子節點(b 樹是每個關鍵字都儲存資料) ;
(2) 所有的葉子結點中包含了全部關鍵字的資訊, 及指向含這些關鍵字記錄的指標,
且葉子結點本身依關鍵字的大小自小而大順序連結;
(3) 所有的非葉子結點可以看成是索引部分, 結點中僅含其子樹中的最大(或最小)
關鍵字;
( 4) 通常在 b+樹上有兩個頭指標, 一個指向根結點, 一個指向關鍵字最小的葉子結
點;
( 5) 同一個數字會在不同節點中重複出現, 根節點的最大元素就是 b+樹的最大元
素。
B+樹相比於 B 樹的查詢優勢:
( 1) B+樹的中間節點不儲存資料, 所以磁碟頁能容納更多節點元素, 更“矮胖”;
( 2) B+樹查詢必須查詢到葉子節點, B 樹只要匹配到即可不用管元素位置, 因此 B+
樹查詢更穩定( 並不慢) ;
( 3) 對於範圍查詢來說, B+樹只需遍歷葉子節點連結串列即可, B 樹卻需要重複地中序遍
歷
相關文章
- MySQL索引為什麼使用B+樹?MySql索引
- MySQL為什麼選B+樹MySql
- Mysql InnoDB B+樹索引和雜湊索引的區別? MongoDB 為什麼使用B-樹?MySql索引MongoDB
- B樹與B+樹區別辨析
- B+樹要點梳理
- 徹底搞懂MySQL為什麼要使用B+樹索引MySql索引
- mysql索引為啥要選擇B+樹 (下)MySql索引
- mysql索引為啥要選擇B+樹 (上)MySql索引
- MySQL之B+樹分析MySql
- 面試題:MySQL索引為什麼用B+樹?面試題MySql索引
- 面試 (MySQL 索引為啥要選擇 B+ 樹)面試MySql索引
- 二叉樹、B樹以及B+樹二叉樹
- 平衡二叉樹,B樹,B+樹二叉樹
- 搞懂MySQL InnoDB B+樹索引MySql索引
- Mysql索引資料結構為什麼是B+樹?MySql索引資料結構
- 【Mysql】InnoDB 中的 B+ 樹索引MySql索引
- MySQL為什麼採用B+樹作為索引結構?MySql索引
- 『分享』兩篇講 B-樹 B+ 樹的文章
- 【資料結構】B樹、B+樹詳解資料結構
- MySQL資料庫索引選擇使用B+樹MySql資料庫索引
- 資料庫索引為什麼用B+樹實現?資料庫索引
- 多路查詢樹(2-3 樹、2-3-4 樹、B 樹、B+ 樹)
- B+樹的幾點總結
- B+ 樹的簡單認識
- MySQL索引-B+樹(看完你就明白了)MySql索引
- 【面試普通人VS高手系列】b樹和b+樹的理解面試
- 資料結構之MySQL獨愛B+樹(二叉樹、AVL樹、紅黑樹、B樹對比)資料結構MySql二叉樹
- 淺談樹形結構的特性和應用(上):多叉樹,紅黑樹,堆,Trie樹,B樹,B+樹...
- 資料結構之「B+樹」資料結構
- 談談InnoDB中的B+樹索引索引
- MySql的資料儲存之B+樹(淺談)MySql
- 為什麼選擇b+樹作為儲存引擎索引結構儲存引擎索引
- BST(二叉搜尋樹)、AVL樹、紅黑樹、2-3樹、B樹、B+樹、LSM樹、Radix樹比較
- [譯]從磁碟結構到B+樹
- 一分鐘掌握MySQL的InnoDB引擎B+樹索引MySql索引
- 面試官問你B樹和B+樹,就把這篇文章丟給他面試
- 雜湊,二叉樹,紅黑樹,B樹,B+樹,LSM樹等資料結構做索引比較二叉樹資料結構索引
- 一些有趣的B+樹優化實驗優化