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主键(这时用了覆盖索引),然后根据主键查询到具体的数据,即可应对百万数据量也能在毫秒内完成