MySQL系列-B+Tree索引详解

本文详细介绍了B+Tree的工作原理,为何选择B+Tree作为数据库索引的原因,以及在MyISAM和InnoDB存储引擎中B+Tree索引的区别。重点讨论了MyISAM的非聚集索引和InnoDB的聚集索引,解释了自增ID作为主键的优势,包括提高比较速度、简化B+Tree分裂操作和节省磁盘空间。
摘要由CSDN通过智能技术生成

1.什么是B+Tree?

介绍B+Tree前我们先聊一下在数据结构课程当中学习到的其他树结构,二叉搜索树,平衡二叉树搜索树(红黑树、AVL树),不懂的同学可以先去了解一下。我们知道平衡二查搜索树是对二叉搜索树的一次改进,防止退化成线性表和树高度过高的情况,使其搜索单个值的复杂度为O(logN),这也就意味着在数据必须是可排序的,同时这也是Java的TreeMap(使用的是红黑树结构)不能存null值的原因(null无法比较)。但是为什么又出现了B+树呢,红黑树的高度虽然有一定的控制,而数据库当中一般要把索引树的高度控制在3-5层,这点红黑树显然无法做到,B+树是B-树(不要读成B减树,而是B树)的加强版,是一种多路平衡搜索树,既然它是多路平衡的,那么就不在像红黑树那样只有2个子节点了,既然有多个子节点,树的高度就可以控制了,同时它也跟红黑树一样,数据是排序的,可以快速查找。B+树定义 维基百科

给大家介绍一个可以在线、可视化的学习各种树的网站。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值