MySQL索引数据结构整理(二叉树 红黑树 B-Tree B+Tree)

我们都知道MySQL是使用B+Tree来存储索引的,但是B+Tree有什么优势呢,我们一起来研究一下吧.

常见的数据存储结构

  1. 二叉树
  2. 红黑树
  3. B-Tree树
  4. B+Tree树

二叉树

二叉树

  1. 每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点
  2. 左子树和右子树是有顺序的,次序不能任意颠倒
  3. 即使树中某结点只有一棵子树,也要区分它是左子树还是右子树

二叉树相对于全表扫描是有优势的,相当于二分查找提高了检索速度;

红黑树

红黑树又叫平衡二叉树,拥有自平衡功能,极端情况下二叉查找树会形成一个链表结构而红黑树就不会出现这种情况;
红黑树

  1. 每个节点不是红色就是黑色
  2. 根节点是黑色的
  3. 一个节点时红色的那它的子节点是黑色的
  4. 从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点

B-Tree (B树)

B-Tree又叫平衡多路查找树

红黑树的查询速度已经很高了,但是存在磁盘IO过多的问题,磁盘IO交互是非常耗时的,为了解决这个问题B-Tree出现了;

相对于二叉树,B-Tree每个节点有多个分支,即多叉;

二叉树的高度决定了查询时IO交互的次数,B-Tree每个节点存储多个索引;这样树的高度得以降低,这样就降低了IO次数,提高了查询效率;

根二叉树相比,相同的数据B-Tree的深度更低;
B-树

B+Tree

MySQL索引使用的存储结构
B+Tree和B-Tree思想都差不多,B+Tree和B-Tree的结构又些许变化
B+Tree

  1. B+Tree所有数据信息存储在叶子节点
  2. 非子节点只保存索引信息不保存数据信息,这样非叶子节点每个节点能保存的数据更多;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值