我们现在面临的问题之一是处理从数据库中获得的大型ResultSet的分页.
当前,作为sql存储过程返回的行调用jdbcTemplate.query范围从100K到300K,并且分页是在extractData方法内完成的.
最佳答案
我相信JdbcTemplate没有用于分页的特定功能.但是,即使这样做也可能无法帮助您的代码更快地运行.
通常,面向用户页面的大小不超过200行,因此查询100-300K行似乎过多,浪费了大量内存.
您首先需要确定要使用哪种分页策略.两种常见的策略是查询前N个页面,并将其存储在临时缓存中-或仅查询足以填充一个页面大小(例如:200行),并且仅在用户请求时查询接下来的200行.
您还需要确定缓慢的真正原因是什么.行大小是一个因素,但不是唯一因素.您必须分析架构结构,索引,查询联接等.
请记住,在正常使用情况下-尽管您最多可以向用户展示10000个页面,但是典型用户不太可能浏览所有这些页面-也许只有前5-10个页面很重要-因此,如果您可以,将结果集限制为少量会更有意义