资讯详情

回表,覆盖索引:不用回表,索引下推:减少回表

1、回表

回表是针对普通索引的。例如,员工表的主键是id,name普通索引。

select * from emp where name = ‘张三’

索引的执行过程是首先使用索引name到b tree找到索引叶节点的主键索引id,主键索引id,在到b tree找到相应的数据。

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

2、覆盖索引(Covering Index)

select id from emp where name=1

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

或者: 组合索引 (name,age) select age from table where name = ‘xx’

在执行计划中Extra: Using index

3、最左匹配

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

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

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

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

组合索引(a,b,c) where从左到右包含组合索引的顺序:abc等同于bca,ab等同于ba,a

4、索引下推

索引下推实际上是指将上层(服务层)负责的部分事情交给下层(引擎层)处理 

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

或者: 组合索引:(name,age),(王1、10)、(王2、18)、(王3、20)

select * from table where name like ‘王%’ and age =18

版本5.7之前的数据库引擎过滤掉了name =1数据回表查询,然后在server处过滤age=18的数据。 版本5.之后,数据库引擎将是7name =1 和 age= 过滤了18个数据,然后回表查询数据server。

原文链接:https://blog.csdn.net/shw12357/article/details/108639636

标签: shw铝电解电容器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台