B树和B+树的特点与区别

  • A+
所属分类:mysql

B树和B+树的特点区别

  • 树的高度一般都在2-4这个高度,树的高度直接影响IO读写的次数。
  • 如果是三层树结构---支撑的数据可以达到20G,如果是四层树结构---支撑数据能达到几十T.
  • B树和B+树的最大区别在于非叶子节点是否存储数据的问题。B树是非叶子节点和叶子节点都会存储数据。而B+树只有叶子节点才会存储数据,而且存储的数据都是在一行上,而且这些数据都是有指针指向的,也就是有顺序的。

聚集索引

  • 叶子节点只会存储数据行的指针,简单来说数据和索引不在一起,就是非聚集索引
  • 主键索引和辅助索引都会存储指针的值

聚集索引(innodb)

  • 主键索引(聚集索引)的叶子节点会存储数据行,也就是数据和索引是在一起,这就是聚集索引
  • 辅助索引只会存储主键值
  • 如果没有主键,则使用唯一索引建立聚集索引;如果没有唯一索引,mysql会按照一定规则创建聚集索引

对数据结构有兴趣的同学请参照这个网址,可以以动画的形式展示树的生成过程

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

ZPY

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: