1)什么是B树、B+树、B树?
2)B树、B+树、B树的作用?
3)B树、B+树、B*树的应用场景?
一、什么是B树、B+树、B树?
因为在数据量非常大的情况下,就会存在这两个问题,问题一在构建二叉树时,需要多次进行i/o操作(海量数据存在数据库或文件中),结点海量,构建二叉树时,速度有影响。第二个问题,结点海量,也会造成二叉树的高度很大,会降低操作速度。B树全称是Balanced-Tree,是一颗平衡多叉树。B树的所有叶子节点都在同一层,B树的搜索,从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果命中则结束,否则进入查询关键字所属范围的儿子结点;重复,直到所对应的儿子指针为空,或者已经是叶子结点。关键字集合分布在整颗树中,即叶子结点和非叶子结点都存放数据。搜索有可能是在非叶子结点结束。
B+树是B树的变体,也是一颗多路搜索树,所有关键都出现在叶子结点的链表中(即数据只能在叶子结点【也叫稠密结点】),且链表中的关键字(数据)巧好是有序的。不可能在非叶子结点命中,非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层。
B树是B+树的变体,在B+树的非根和非叶子结点再增加指向兄弟的指针。
二、B树、B+树、B*树的作用?
用于数据库引擎实现,文件系统的索引
三、B树、B+树、B*树的应用场景?
用于需要搜索大量(亿级别)的数据的场景
网友评论