【Mysql高级特性】 InnoDB 的B+索引



相关文章地址
初探 InnoDB 体系架构 初探 InnoDB 体系架构
InnoDB Checkpoint与 Redo logInnoDB Checkpoint与 Redo log
InnoDB 的关键特性InnoDB 的关键特性
InnoDB 最全的文件介绍InnoDB 最全的文件介绍
InnoDB 的逻辑存储结构InnoDB 的逻辑存储结构

💓 索引

innoDB中支持的索引类型

  • B+树索引
  • 全文索引
  • hash索引

💓B+树索引

B+树是由B树和索引顺序访问演化而来。B+树是为磁盘或者直接存取辅助设备设计的一种平衡查找树。在B+树中,索引记录节点都是按键值的大小顺序存放在哦那个一侧的叶子节点上,由个叶子节点指针进行连接。B+相比于B树b+树的中间节点不保存数据,所以磁盘页能容纳更多节点元素,更“矮胖”,并且叶子节点存在双向指针可以更好的全文查找
在这里插入图片描述
在数据库中,B+树的高度一般都在2——4层,也就是说查找某一键值的行记录最多只需要2到4次I/O。

💓聚集索引

聚集索引就是按照每张便的主键狗仔一颗B+树,同时叶子节点中存放的即为整张表的行记录数据,聚集索引决定了索引组织表中的数据也是索引的一部分。同时B+树数据结构一样,每个数据页都是通过一个双向链表来进行链接,因此每张表都只能有一个聚集索引

💓辅助索引

辅助索引,叶子节点不包含行记录的全部数据。叶子节点除了包含键值意外,每个叶子节点中的所银行中害包含了一个书签。这个书签就是相应数据行的聚集索引键
辅助索引的存在并不影响数据在聚集索引中的组织,一次每张表可以有多个辅助索引。当通过辅助索引来查找数据是,InnoDB引擎会便利辅助索引并沟通过叶级别的指针获得只想主键索引的主键,然后再通过主键主键索引来找到一个完整的行记录,这个操作就叫回表


💓联合索引

联合索引是指对表上的多列进行索引。本质上说联合索引也是一颗B+树,只不过是按照多列的优先级进行排序
在这里插入图片描述
联合索引的好处是已经对第二个键值进行了排序处理。

💓覆盖索引

覆盖索引,即从辅助索引中就可以得到查询的记录,从而不需要回表查询聚集索引中的记录。使用覆盖索引的好吃是辅助索引不包含整行的所有信息,故其大小要远小于聚集索引,因此可以减少大量的io

Multi-Range Read 优化 (MRR)

mysql 5.6 版本支持 Multi-Range Read 优化
简单来说,就是将随机访问转化为顺序的数据访问,MRR优化可用于 rang、ref、eq_ref类型
MRR优化的好处

  • 是数据访问变得较为顺序。在查找辅助索引时,首先根据得到的查询结果,按照主键进行排序,并按照主键排序进行回表查找
  • 减少缓冲池中页被替换的次数
  • 批量处理对键值的查询操作

Index Condition Pubshdown 优化 (ICP)

当进行索引查询时,首先根据索引来查询记录,让后再根据Where条件过滤记录,在支持ICP后,Mysql数据库会在取出索引的同时,判断是否可以使用WHERE条件过滤,也就是将WHERE的部分过滤操作放在了存储引擎层,在某些查询下可以大大减少上层SQL层对记录的索取,从而提高数据的整体性能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1999

每人一点点,明天会更好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值