有B树、B+树、B*树,没有B- 树
一、B-tree (B树)
![image.png](https://static.studygolang.com/180904/4849a5dfee3fced22abf700577e70016.png)
1、每个结点至多有m颗子树;
2、除根结点外,所有非终端结点至少有[ m/2 ] ( 向上取整 )颗子树;
3、若根结点不是叶子结点,则至少有两颗子树;
4、所有的叶子结点都出现在同一层次上;
5、一个非终端结点包含k个子节点和k-1个key
二、B+tree
![image.png](https://static.studygolang.com/180904/f9494a984657c7e30cc5d80f1874a63a.png)
1、B+树由B树和索引顺序访问方法演化而来;
2、B+树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树;
3、B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶节点中,各叶节点指针进行连接;
4、叶节点存放着所有的数据;
三、InnoDB主键索引B+树 ???? https://www.cnblogs.com/leefreeman/p/8315844.html
1、树的高度通常是1-3;
2、树可以存放约2千万数据;
注:在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是4k,而对于我们的InnoDB存储引擎也有自己的最小储存单元——页(Page),一个页的大小是16K。
有疑问加站长微信联系(非本文作者))