所有的php初学者都应该知道,mysql的分页语句写法如下:
select * from a limit (page-1)*page_size,page_size
而当这语句分页到一定程度时,例如1000...,相当于一次性要取a+b条的数据,而a条其实是无用的
解决方案如下
一:php代码解决
例如我们先查询出第一页的数据:
select * from a limit 20
保留最后一个的id,当需要取第2...select id
from a
LIMIT 19980, 20
) as lim using(id);
使用该方法,会先从索引表取出索引id,然后进行using...索引覆盖方法,因为先查询的是索引,然后才从索引里关联取出20条记录,大大的提升了查询速度
实例图:
?...普通方法查询,0.123秒
上一页最后一个的id为20000,则
?
php方法查询,0.070秒
?
mysql索引覆盖查询,0.089秒