B-树/B+树

2020-02-04  本文已影响0人  myFamily329
B-树(Balance树)和B+树应用与数据库索引,是m叉的多路平衡查找树。

1. 性质分析

1.1 M阶B-树
1.1.1 M阶B-树性质
1.1.2 B树特性
1.2 M阶B+树
1.2.1 M阶B+树性质
1.2.2 B+树特性
2. 相关问题补充
2.1 MySQL的索引使用B+树而不是B树?
2.2 MySQL中B+树的高度?

在InnoDB中B+树高度一般为1-3层,它就能满足千万级的数据存储。在查找数据时一次页的查找代表一次IO,所以通过主键索引查询通常只需要1-3次IO操作即可查找到数据。
https://www.cnblogs.com/leefreeman/p/8315844.html

2.3 InnoDB 为什么要使用 B+ 树,而不是 B 树、Hash、红黑树或二叉树?

因为 B 树、Hash、红黑树或二叉树存在以下问题:

3. 相关总结

InnoDB存储引擎的最小存储单元为页, 1页存储数据大小为16K。数据库索引是存储在磁盘上的,当数据量比较大的时候,索引的大小可能有几G, 当我们查询的时候,不能把所有索引加载到内存中,能做的就是逐一加载每一个磁盘页(磁盘页对应索引树的节点),相对于磁盘IO的速度,在内存中对比的耗时几乎可以忽略,所以只要树的高度足够少,IO次数足够少,就可以提高查询性能。相比较于内部节点多一些也没有关系,仅仅多了几次内存交互,只要不超过磁盘页大小即可。【磁盘的IO次数是由索引树的高度决定的】
综合所述,InnDB 只有采取 B+ 树的数据结构存储索引,才能提供数据库整体的操作性能。B-树主要应用于文件系统以及部分数据库索引,非关系性数据库MongoDB

上一篇下一篇

猜你喜欢

热点阅读