前言
本文章主要说明,相比较B树和平衡二叉树,B+树作为数据库的索引的数据结构优势在哪
平衡二叉树的劣势
数据库作为存储数据的工具,常常会存储大量数据。而数据最终存储的物理媒介便是磁盘。如果使用平衡二叉树,那么当数据量很大时,树的深度也会很深。在磁盘存储时,树的每一个节点会存储在一个数据块中,约高的树,在搜索一个数据时遍历的节点越多,此时需要进行磁盘IO的次数就越多,那么所耗费的时间就越多。平衡二叉树作为一种高瘦的数,在这点上就比不了矮胖的B树和B+树
B树与B+树的对比
B树与B+树最重要的两点区别是:
- B+树只在叶子节点存储数据,在非叶节点只有关键字
- B+树所有叶子在同一层,包含了全部关键字信息,叶子节点按照关键字的大小自小而大顺序链接
针对上面两种不同,B+树便显示出比B树更多的优势
因为条件1:
B+树在搜索数据时,每次都需要搜索到叶子节点,这保证了B+树查找时间的稳定性
B+树在一个数据块中可以存储更多的关键字信息
因为条件2:
B+树更适合范围查找,只要查找到最小值便可直接在叶子节点进行遍历获取