Java教程

SQL索引回表

本文主要是介绍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;

这篇关于SQL索引回表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!