B-Tree与B+Tree的区别
生活随笔
收集整理的這篇文章主要介紹了
B-Tree与B+Tree的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二叉樹:
左右兩個子節點 可以為空
二叉查找樹:
左子樹小于根節點,又子樹大于根節點
平衡二叉樹:
任何節點的左右兩個子樹的高度相差最大為1,(高度相差大于1會旋轉操作)
B-Tree:(平衡多路查找樹)
B-Tree是為磁盤等外存儲設備設計的一種平衡查找樹
系統從磁盤中讀取數據是以磁盤塊為單位,一次會把統一磁盤的數據都讀出來
索引引入的目的是為了快速查詢以及更新表中的數據,是有序表,可以用二分查找提高效率
磁盤I/O操作是影響整個B-Tree查找效率的決定因素
若數據量很大則B-Tree的深度較大,增大查詢時的磁盤I/O次數,進而影響查詢效率(采用B+Tree的原因)
B+Tree:
B+Tree是在B-Tree基礎上的一種優化,使其更適合實現外存儲索引結構
MySQL InnoDB引擎的索引底層實現采用的是B+tree
對于范圍查找來說,b+樹只需遍歷葉子節點鏈表即可,b樹卻需要重復地中序遍歷。
B+Tree相對于B-Tree有幾點不同:
轉載于:https://www.cnblogs.com/Aaron12/p/9580297.html
總結
以上是生活随笔為你收集整理的B-Tree与B+Tree的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos7安装mongo3.4
- 下一篇: 干洗时为什么使用的去渍药剂应先用碱性药剂