Mysql Btree和B+tree 区别是什么。为什么使用b+tree

只是个人总结,方便自己学习和记忆,有问题欢迎大家指正。。

1.B tree

  1. 所有键值分布在整颗树中,索引值和数据分布在所有节点上。
  2. 一个关键词,只出现一个节点
  3. 所有的节点都是排序的,而且节点元素也是排完序以后的 。

2.B+tree

  1. 拥有B树的特点,可以说是升级版
  2. 叶子节点之间有指针
  3. 非叶子节点是只保存索引值,这样可以保证b+tree不会太高,可以存储更多的元素。 叶子节点保存索引值和数据。并且数据都是排了序的。

mysql为什么使用B +tree

Btree 叶子节点和非叶子节点,都会存储键值和数据,这样就会导致非叶子节点存储的数据比较多,从而树的高度比高,导致操作io次数比较多,查询性能变慢。
B+tree 可以很好的解决这个问题,提高查询性能,而且节省空间。


版权声明:本文为weixin_44542598原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。