Limit 分页的语法大家都知道limit offset rows
加入我有一张表有400+数据

我现在要做分页功能,我的sql是这样的
select xxx,xxx,xxx,from tablename where xxx,xxx,xxx order by xxx,xxx limit 15,15
假如在where条件下共有39条数据,我每页显示15条数据,那么第二页是limit 15, 15,第三页是limit 30, 15。
我们大多情况下回直接这么写,因为我不知道最后一页应该有多少数据,所以我直接limit {页码}, {每页显示数量}。
这样写在前两页是没有问题的,但是查到最后一页的时候会非常慢。
经测试在前两页我的执行时间是0.5s之内,还能接受, 但是最后一页的执行时间却是2m多!!!
怎么解决这一问题呢,经过我的摸索,我发现如果提前把最后一页的rows算出来,速度会非常快。
比如在这个问题里最后一页的查询如果我们写成limit 30, 9,那么查询时间就大大缩减了。
解决办法很简单,我们只需要拿着where方法把总数算一下,然后把sql处理下就行啦。