SQL索引回表

当使用普通索引的时候,它会先在索引那查询所有符合条件的索引,然后再回到表中根据索引查询对应的数据出来。所以这里有两次查询表的过程,简称回表。

image

怎么避免回表

1、使用主键作为条件查询

2、如果必须使用辅助索引,那么尽量避免使用*,直接列出所需列名。实际上就算使用主键作为条件查询,也应该尽量列出所需列名,需要什么字段就返回什么字段,而不是一股脑的直接返回*。

3、查询语句优化,实际也相当于变相使用主键作为条件查询

优化前:
select * from t_refund_record order by id limit 2000,10;
优化后:
select * from t_refund_record t1 join (select id from t_refund_record limit 2000,10) t2 on t1.id = t2.id;

posted @ 2022-03-30 17:54  西红柿里没有番茄  阅读(451)  评论(0编辑  收藏  举报