Mysql 中 B 树 vs B+ 树

🌳 什么是 B树 和 B+树?

它们都是多路平衡查找树(M-Way Search Tree),用于提升磁盘读写效率,常用于数据库(如 MySQL)、操作系统中的索引结构。

🔍 B树 和 B+树 的核心区别一览

特性B 树B+ 树
数据存储位置所有节点都存数据(根、内、叶)只有叶子节点存数据
内部节点内容关键字 + 数据只有关键字(不含实际数据)
叶子节点是否链表❌ 否✅ 是(叶子节点组成有序链表)
查询效率查询速度不稳定,深度少但每层含数据查询稳定,需走到底但结构更简单
范围查询需遍历整棵树✅ 非常高效,直接链表顺序查
磁盘读取次数较少,但不规律稍多,但更适合磁盘块优化
典型应用较少见,早期数据库✅ MySQL(InnoDB)、Linux 文件系统等

📌 形象理解

🟩 B树结构:

        [ 10 | 20 ]
       /    |    \
     [5]  [15]  [25]
    /      |     \
  数据   数据   数据 (所有节点都存数据)

🟦 B+树结构:

        [10 | 20]
       /    |    \
     [5]  [15]  [25]   <-- 只有关键字
      |     |     |
    [数据]→[数据]→[数据] (叶子节点链表)

🔥 为什么数据库几乎都用 B+ 树?

  1. 所有数据都在叶子节点,结构更统一,便于范围查找
  2. 叶子节点链表 → 范围查询效率极高
  3. 磁盘读取更高效:内部节点更“轻”,一页能装更多 key,树更矮,访问路径更短
  4. 支持顺序遍历:天然有序,分页、between 查询非常友好

✅ 一句话总结

B 树适合内存查找结构,B+ 树更适合磁盘和数据库,因为它只在叶子节点存数据、结构更稳定、查询更高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值