MySQL索引(回表,覆盖索引,最左匹配,索引下推)通俗解释

1、回表

回表是针对普通索引来说的。比如员工表主键为id,name为普通索引。

select * from emp where name = '张三'

索引的执行过程为首先利用索引name到b+tree索引的叶子节点找到主键索引id,主键索引id,在到b+tree上查找相应的数据。

简单来说就是name的索引在B+tree上保存的数据是主键id。而主键id对应的b+tree的叶子节点保存的才是行数据。

2、覆盖索引

select id from emp where name=1

查找的列正好是主键,就不需要去b+tree上查找,可直接返回

3、最左匹配

首先索引必须是组合索引。

索引(name,age)select * from emp where age =1 不会走索引

select * from emp where name='张三'  走索引

因此合理的索引应该建立两个一个是(name,age)一个是age

4、索引下推

select * from emp where name =1 and age= 18

是指在数据返回server的时候,数据引擎就讲name =1 和 age= 18的数据进行了过滤。在版本5.7之前的数据引擎先过滤掉name =1的数据返回,在server处过滤age=18的数据。相比较之前的返回,返回数据少,减少io

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值