我对分页做了一些研究,从我读过的内容来看,有两种相互矛盾的解决方案
每次用户单击下一个时从数据库中加载一小组数据 问题 - 假设有一百万行满足任何 WHERE 条件。这意味着一百万行被检索、存储、文件排序,然后大部分被丢弃,只有 20 行被检索。如果用户单击“下一步”按钮,同样的过程再次发生,只会检索到不同的 20 个。(参考 - http://www.mysqlperformanceblog.com/2008/09/24/four-ways-to-optimize-paginated -显示/)
从数据库加载所有数据并缓存它......这里也提到了一些问题 - http://www.javalobby.org/java/forums/t63849.html
所以我知道我将不得不使用两者的混合......但是问题归结为 - 哪个操作更昂贵 - 在数据库中重复查询小块数据或通过网络传输大型结果集