二叉树,红黑树,B树、B+树的区别

树的概念

在这里插入图片描述

树的演变

在这里插入图片描述

二叉搜索树

二叉搜索树可以提高查询效率,左小右大,但是他不好掌握根节点的数字是哪个,容易一边倒,导致层数变多,降低效率

平衡二叉搜索树

平衡二叉搜索树在二叉搜索树的基础上,通过控制任意一个节点的左子树和右子树的高度差距不超过1,如果超过就要旋转的原则,来减少树的高度,树达到一个平衡,

由于,旋转条件太过极端,随着元素越来越多,每次旋转需要重新排序的情况越来越复杂,越消耗就会越大.

红黑树

红黑树在平衡二叉搜索树基础之上,进行自平衡,自己来根据添加的数据来选定根节点是哪个,可以降低层数,提高查询效率.
但是红黑树一个节点只能存一个数

红黑树的基本思想
(在保证效率的基础上,减少旋转带来的性能消耗.)牺牲一小部分查询效率,换取一大部分的旋转性能提升,

红黑树的特性约束

性质1. 结点是红色或黑色。
性质2. 根结点是黑色。
性质3. 所有叶子都是黑色。(叶子是NIL结点)
性质4. 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)
性质5. 从任一节结点其每个叶子的所有路径都包含相同数目的黑色结点。

这些约束强制了红黑树的关键性质: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。

b树

b树,一个节点可以搞多个树,又减少了层数

b+树

b+ 树,在b树的基础上进行再次优化,最多三层,前两层存的是索引,第三层叶子节点才是具体数据,查询效率最高

mysql的索引机制使用的是B+树
mysql索引就是用的b+树,对数据进行重排序,提高查询效率,但是不利于更新数据,
而且占用空间,因为一旦数据更新,b+树也要跟着重排

索引的缺点

1.,就是会生成一个占用一部分磁盘空间.
2.数据库的数据更改,索引的更新,会消耗性能
3.索引可能会失效
()没办法进行条件查询就会索引失效,(模糊查询,或者不等于 都会导致条件查询失败,因为根据这些条件没办法去查找具体的子节点的数据范围,来摒弃一部分数据,就失去了建立索引的意义,)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值