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