2-17-数据库中的B,B+,B*

B* 树

规则

B*树是B+树的变种,相对于B+树他们的不同之处如下:

(1)首先是关键字个数限制问题,B+树初始化的关键字初始化个数是cei(m/2),b树的初始化个数为(cei(2/3m))

(2)分裂规则不同。B+树节点满时就会分裂,而B*树节点满时会检查兄弟节点是否满(因为每个节点都有指向兄弟的指针),如果兄弟节点未满则向兄弟节点转移关键字,如果兄弟节点已满,则从当前节点和兄弟节点各拿出1/3的数据创建一个新的节点出来;

特点

在B+树的基础上因其初始化的容量变大,使得节点空间使用率更高,而又存有兄弟节点的指针,可以向兄弟节点转移关键字的特性使得B*树额分解次数变得更少;

B/B+树: 用在磁盘文件组织,数据索引和数据库索引。

Trie树(字典树): 用在统计和排序大量字符串,如自动机。

红黑树: 平衡二叉树,广泛用在C++的STL中。如map和set都是用红黑树实现的。

扫描二维码关注公众号,回复: 9956845 查看本文章

B树索引的结构:由根指向子节点,B树将索引按顺序存储,在叶节点保存索引到字段及其对应数据在表中的位置指针。从根节点开始搜索,通过节点中的指针进入下一级节点,通过比较要查找的索引值和节点中的指针大小选择进入哪个子节点,最终要么找到对应叶节点,要么没找到。叶节点中有指向表中数据的指针。

何时使用:

a、仅需要索引访问表中很少一部分行时,索引提供以原子粒度访问数据的功能,可以快速定位所查找数据的位置;

b、虽然查询行数比较多,当索引包含多个字段,而要访问的字段全部包含在索引中时,查找只需通过索引而不用访问全表时。


高级数据结构中有些适用于内存,有些适用于磁盘,请举例说明哪些适用于内存,哪些适用于磁盘

二叉搜索树、多维数组、广义表、红黑树都适用于内存;

B+树,B-树适用于磁盘


九,一个n阶b+树,n为奇数,问一个k层的这样的b+树 最多。最少能索引多少记录(十分)

B+树的记录索引全部在叶子上,分支结点只有下层的索引,并且每个结点最多可以有n个关键字,因此如果是2层,则第1层1个根,第2层可以有n个结点,于是最多可存放的记录索引数量为n * n= n的平方

发布了137 篇原创文章 · 获赞 2 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/m0_37302219/article/details/104872827