select * from tableA limit m,n;
上述语句会走全表扫描,速度慢,而且有的数据库结果集返回不稳定
普通查询快速分页的sql语句有如下两种写法:
1、select * from tableA where id >= (select id from tableA limit m,1) limit n;
2、select * from tableA a join (select id from tableA limit m,n) b on a.id=b.id;
对于有where语句的分页可以如下操作:
select * from id where vtype=1 order by id limit m,n
建立复合索引,where后面的字段放在索引前面,limit用到的主键放在后面。先select主键(这时用了覆盖索引),然后根据主键查询到具体的数据,即可应对百万数据量也能在毫秒内完成