mysql分页查询时偏移量过大会导致查询过慢,优化方法如下
正常查询sql为
select * from tax_dictionary limit 2000,101;
优化后
//小表驱动大表
SELECT a.* FROM tax_dictionary b, (select id from tax_dictionary LIMIT 2000,101 ) a where a.id=b.id;
优化过后效率有明显提高
优化的原理 没有优化过查询会将偏移量前所有的数据都查询出来,这会有大量的回表操作。优化后的sql为先根据主键进行查询所有匹配的数据的主键,然后根据主键将要返回的数据再进行回表查询