前言
什么是B树:
B树也叫B-树,是一棵多路平衡查找树,平衡的意思是左边和右边分布均匀。多路的意思是性对于二叉树而言,B树有多条路,及父节点有多个子节点。
优点:B树因为是多路,多以层数少,可以更快的找到信息。Mysql中的数据一般是放在磁盘中的,B树可以减少对磁盘的I/O操作。
什么是B+树:
B+树是B树的变形。
B+树与B树的区别:
B树的每个节点都存储了key和value,B+树只有所有的数据存储在叶子节点上,其余节点不存储数据,这样的话节点就可以存储更多的key,可以使得树更矮,I/O次数更少。
B+树的所有叶节点构成一个双向有序链表,可以按照排序的次序遍历所有记录,便于区间查找和搜索。B树种相邻的元素可能在内存中不相邻。
InnoDB和MyISAM是Mysql中常用的两种引擎,都是用B+树存储索引。
下面根据这两种不同的引擎了解Mysql的主键索引和非主键索引。
InnoDB引擎
In