前言:
为什么MySQL索引底层结构采取B+树?除了搜索性能方面的因素还有其他原因吗?
一、B+树的结构
因为B+树是m叉树,m叉树最简单的一种就是二叉树,且B+树是B树的变形形式,我们就从二叉树和B树开始介绍。
1、二叉树
见到比较多的应该是二叉树,以下是引用百度百科的定义:
在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点。
二叉树又可以细分为:满二叉树、完全二叉树和平衡二叉树等。
满二叉树
除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。
完全二叉树
在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的