Mysql B+tree 原理、结构

模拟B+Tree的数据结构,非常好:   https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html

一、B+Tree

 B指的是balance(平衡)

二、节点、叶子节点的概念,下图是二叉树的图,不是N叉数的图:

节点:

就是一个图中的0、1、2~~14,这些就叫节点。

叶子节点:

就是没有子节点的节点,比如图中的7、8、9~~14这些,0、1、2、3这些就不是叶子节点。

三、

四、根据索引查找的时候是按照折半原理查找,也就是二分查找,这样查找速度就会很快

五、InnoDB普通索引查找方式

B树结构:

六、为什么索引用B+树,而不用B树呢?

       因为B+树的非叶子节点上不存储数据,所以能够最大程度上存放索引【一个节点大概能够存放16KB的数据】,减小树的高度,减小磁盘IO;用B树的话,会增加树的高度,增加磁盘IO,查询速度变慢。

       MySql默认一个节点的长度为16K,一个整数(bigint)字段索引的长度为 8B,另外每个索引还跟着6B的指向其子树的指针;所以16K/14B ≈ 1170,例5中20-30算一个节点。

 

七、

例子: 

 

 

 

八、

 1、B树原理

 

2、B树和B+树的区别

3、B+树原理

3、索引的创建和存储引擎是挂钩的,存储引擎表示不同的数据在磁盘的不同组织形式

4、聚簇索引和非聚簇索引

5、InnoDb普通索引的组织形式

 

回表、索引覆盖、最左匹配、索引下推的概念

1)回表、索引覆盖

根据上图可以得出索引覆盖的效率更高

2) 、最左匹配

3) 索引下推

小常识

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值