所有的php初学者都应该知道,mysql的分页语句写法如下:
select * from a limit (page-1)*page_size,page_size
而当这语句分页到一定程度时,例如1000...页数据时,则
select * from a where id>最后一个的id limit 20
这样数据库就会每次都能走索引,然后只查出20条
缺点:不能从第一页跳转到第n页
缺点解决方案:前100页...,不做优化,当到101页时采用该优化方案,并且不让用户从101页进行页面跳转到1xx页
二:mysql解决
SELECT *
FROM a
inner join(
...,然后才从索引里关联取出20条记录,大大的提升了查询速度
实例图:
?...普通方法查询,0.123秒
上一页最后一个的id为20000,则
?
php方法查询,0.070秒
?
mysql索引覆盖查询,0.089秒