B树和B+树的区别
B树的特点:
- 节点排序
- 一个结点可以存储多个元素,多个元素也排序
B+树的特点
- 拥有B树的特点
- 叶子结点之间具有指针
- 非叶子结点上的元素在叶子节点上都冗余了,也就是叶子结点中存储了所有元素,并且排好顺序
MySQL索引使用的是B+树,因为索引是用来加快查询的,而B+树通过对数据进行排序是可以提高查询速度的,然后通过一个结点中可以存储多个元素从而可以使得B+树的高度不会太高,在MySQL中一个innodb页就是一个B+树节点,一个innodb页默认16kb,所以一般情况下一颗两层的B+树可以存2000万行左右的数据,然后通过利用B+树子节点存储了所有数据并且进行了排序,并且叶子结点之间有指针,可以很好的支持全表扫描,范围查找等SQL语句.