只是个人总结,方便自己学习和记忆,有问题欢迎大家指正。。
1.B tree
- 所有键值分布在整颗树中,索引值和数据分布在所有节点上。
- 一个关键词,只出现一个节点
- 所有的节点都是排序的,而且节点元素也是排完序以后的 。
2.B+tree
- 拥有B树的特点,可以说是升级版
- 叶子节点之间有指针
- 非叶子节点是只保存索引值,这样可以保证b+tree不会太高,可以存储更多的元素。 叶子节点保存索引值和数据。并且数据都是排了序的。
mysql为什么使用B +tree
Btree 叶子节点和非叶子节点,都会存储键值和数据,这样就会导致非叶子节点存储的数据比较多,从而树的高度比高,导致操作io次数比较多,查询性能变慢。
B+tree 可以很好的解决这个问题,提高查询性能,而且节省空间。