对于一些存在大量数据的大型网站来说,分页显示的确令人头痛,如果处理不当,将会带来服务器以及资源的浪费。
当然不同的人会有不同的解决方案,不过我就经常用到分页查询SQL语句去做,每页显示多少条就去数据库提取多少条。这样不但节省资源的浪费,也可以减轻数据库的负担。
思路以及实现方法,适用于SQL等一些常用数据库:
m:代表总记录数(m>0)
n:代表每页显示N条记录(n>0)
page:代表当前页(page从0开始)
求总页数:(m%n)==0?(m/n):(m/n+1);
SQL语句的实现:
select top n * from 表名 where id not in(select top (n*page) id from 表名 order by 排序) order by 排序
eg:
select top 5 * from Messages where MessageId not in(select top (5*2) MessageId
from Messages order by MessageDate desc) order by MessageDate desc
这样就实现了分页处理