所有的php初学者都应该知道,mysql的分页语句写法如下:
select * from a limit (page-1)*page_size,page_size
而当这语句分页到一定程度时,例如1000...页,每页20条
select * from a limit 19980,20
会发现分页之后查询的会越来越慢
原因是因为limit a,b 的取数据方式是,先取出a+b条数据,再把a条筛选掉,剩b条...,不做优化,当到101页时采用该优化方案,并且不让用户从101页进行页面跳转到1xx页
二:mysql解决
SELECT *
FROM a
inner join(
... LIMIT 19980, 20
) as lim using(id);
使用该方法,会先从索引表取出索引id,然后进行using索引覆盖方法,因为先查询的是索引,然后才从索引里关联取出...mysql索引覆盖查询,0.089秒