在分页系统中,一帮limit offset是很常见的,他们通常会和order by 一起使用,索引对排序很有帮助,如果没有索引就需要大量文件排序,但是在分也时会遇见一个非常普遍的问题,比如limit 1000000,10这样便宜很大前面会丢掉很多数据,这个操作的代价很大,一个提高效率的技巧就是在覆盖索引上就行便宜可以将覆盖索引上提取出来的数据和全行数据联结,然后取得需要的列。下面举一个列子
select film.id,film.description from film order by title limit 1000,10;
这样改进
select film.id,film.description from film inner join ( select film.id from fulm order by title limit 1000,10) as xx using(id);
这种方式效率会很高,他让服务器在索引上检查可能跟少的数据,一旦取得了需要的行就和外面的表联结,取得需要的列