MYSQL--基础--4.1--索引--数据结构--二叉查找树、红黑树、B树,Hash表

本文详细介绍了MySQL中使用的三种数据结构:二叉查找树、红黑树和B树,以及它们在插入和查找方面的性能特点。着重讲述了二叉查找树的简单实现、红黑树的自平衡性质及其局限性,以及B树的多元素存储优势。同时,还提到了Hash表的高效定位和范围查询的限制。
摘要由CSDN通过智能技术生成

MYSQL–基础–4.1–索引–数据结构–二叉查找树、红黑树、B树,Hash表


## 数据结构在线演示地址
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

1、二叉查找树(Binary Search Tree)

二叉查找树,也称二叉搜索树

  • 左子树上所有结点的值均小于它的根结点的值
  • 右子树上所有结点的值均大于它的根结点的值

1.1、演示

1.1.1、新增数据

21,28,14,32,25,18,11,30,19,15 

在这里插入图片描述

1.1.2、查找数据(27)

在这里插入图片描述

1.1.3、新增有序数据

1,2,3,4,5,6,7,8

在这里插入图片描述

1.2、优点

  • 相比于其他数据结构的优势在于查找、插入的时间复杂度较低。
  • 复杂度:O(log n)。

1.3、缺陷

  1. 不适合数据自增的场景。
    1. 因为自增的数据,组成的数据结构就是一个链表,所以mysql没选这个数据结构

2、红黑树

红黑树是二叉搜索树的变种,具有自平衡特性,也称二叉平衡树。
红黑树的每个节点都包含一个额外的属性,表示节点的颜色(红色或黑色),这些颜色确保了在节点的插入和删除操作中树是平衡的。

因此,红黑树遵循以下属性:

  • 基本属性:红黑树是一个二叉搜索树
  • 节点红/黑规则:树的每个节点要么是红色,要么是黑色
  • 根节点规则:根节点的颜色属性始终为黑色
  • 叶子节点规则:树的每一片叶子都是黑色的
  • 红节点规则:如果父节点的颜色为红色,则子节点始终为黑色。因此,不会有两个连续的红色节点
  • 深度规则:从根节点到任何叶节点的每条路径都会经过相同个数的黑色节点

2.1、演示

2.1.1、新增有序数据

1,2,3,4,5,6,7,8

在这里插入图片描述

2.2、缺点

  1. 数据量大的时候,层级会非常深,层级深,查找就耗时
  2. 因为层级不可控,查找耗时就不可控,所以mysql没选这个数据结构

3、B树(本质是红黑树)

  • 叶节点具有相同的深度,叶节点的指针为空
  • 所有索引元素不重复
  • 节点中的数据索引从左到右递增排列

在这里插入图片描述

3.1、和B红黑树区别

红黑树 原先一个节点存储 一个元素,现在改为 一个节点 存储 多个元素,这就是B树。
因为一个节点存储了更多的元素,所以整体的高度会比红黑树来的低。

3.2、演示

3.2.1、新增有序数据

1,2,3,4,5,6,7,8,9

在这里插入图片描述

4、Hash表

  • 对索引的key进行一次hash计算就可以定位出数据存储的位置
  • 很多时候Hash索引要比B+ 树索引更高效
  • 仅能满足"="、“IN”,不支持范围查询
  • hash冲突问题:链表解决
  • 效率比B+树高

在这里插入图片描述

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值