浅谈mysql中的Btree,b+-tree,b*tree

mysql中索引的Btree中的 B+tree,B-tree,B*tree的用法总结:

  1. Btree,是一种常见的数据结构。(多路搜索树)

  2. B-tree,叫做多路搜索的平衡二叉树。

    2.1 可以有多个字结点。(数量大于2)
    2.2每个结点可存放多个关键字,任何一个关键字只出现在一个结点中,可以在非叶子结点的时候结束。

  3. B+tree,这个是以B-tree为基础。

    3.1在叶子节点上增加了链表指针。相当于所有的关键字在叶子结点上链接起来
    3.2关键字可以出现在多个结点上。
    3.3命中搜索结果时,只能是在叶子结点上。
    适用于文件管理的系统

  4. B*tree,这个是以B+tree为基础。

    4.1在非叶子结点上增加了链表指针。
    4.2关键字可以出现在多个结点上
    4.3命中搜索结果时,只能是在叶子结点上。
    与B+tree的区别在于,B*tree的空间利用率更高。(这里涉及到两种树分裂时的方式。)

目前B*tree还较少见。(原因我也想知道~~~)常用都是B+tree模型。通过以上可以看出,B+tree在内部结点中都是用的指针,并没有有实际的数据。对比与Btree在很大的程度上减少了数据中磁盘读写的代价。由于每次的查询都是在叶子结点上,简单说就是每次查询时的查询路径长度相同,也就使查询的小路更加稳定。

以下附上几种树的模型,有助于理解。(来自百度图库)

1.二叉树

在这里插入图片描述

2.b-tree

在这里插入图片描述

3.b+tree

在这里插入图片描述

4.b*tree

在这里插入图片描述

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值