什么是覆盖索引和回表吗?
2022-06-05 本文已影响0人
嘘寒问暖
覆盖索引指的是在⼀次查询中,如果⼀个索引包含或者说覆盖所有需要查询的字段的值,我们就称之为覆盖索引,⽽不再需要回表查询。
⽽要确定⼀个查询是否是覆盖索引,我们只需要explain sql语句看Extra的结果是否是“Using index”即可。
以上⾯的user表来举例,我们再增加⼀个name字段,然后做⼀些查询试试。
explain select * from user where age=1;
//查询的name⽆法从索引数据获取
explain select id,age from user where age=1;
//可以直接从索引获取