MySQL B+树

二叉查找树:
二叉查找树的特点就是任何节点的左子节点的键值都小于当前节点的键值,右子节点的键值都大于当前节点的键值。顶端的节点我们成为根节点,没有子节点的我们称为叶节点。
平衡二叉树:
平衡二叉树保证了树的构造是平衡的,当我们插入或删除数据导致平衡二叉树不平衡时,平衡二叉树会调整树上的节点来保持平衡
B 树:
B树相对于平衡二叉树,每个节点储存了更多的键值和数据,并且每个节点拥有更多的子节点,每个节点称为页,子节点的个数一般称为阶
B+ 树:
非叶子节点只存储键值信息

数据记录都存放在叶子节点中

所有叶子节点之间都有一个链指针

B+树非叶子节点上是不储存数据的,仅存储键值;而B树节点中不仅储存键值,也会储存数据
所有数据均储存在叶子节点中,而且数据是按照数据排列的,所有B+树使用范围查找,排序查找,分组查找,以及去重查找变得异常简单。
B+ 树索引按照储存方式的不同分为聚集索引,和非聚集索引
聚集索引
以Innodb作为储存引擎的表,表中数据都有一个主键,若不创建主键,系统会进行隐式创建
这是因为Innodb把数据存放在B+树中,而B+树的键值就是主键,在B+树的叶子节点中,储存了表中的所以数据
这种以主键作为B+树索引的键值而构建的B+树索引,称之为聚集索引。
非聚集索引
以主键以外的列值作为键值构建B+树索引,称之为非聚集索引
非聚集索引和聚集索引的区别在于 非聚集索引的叶子节点不储存表中的数据,而是储存该列对应的主键,查找数据需要根据主键再去聚集索引中查找,在根据聚集索引查找数据的过程,成为回表


参考:

http://www.liuzk.com/410.html
https://blog.csdn.net/sinat_32176267/article/details/85460695

posted @ 2021-03-30 20:07  蓝晓焰  阅读(182)  评论(0编辑  收藏  举报