5

我们现在面临的问题之一是处理我们从数据库中获得的大 ResultSet 的分页。

目前,作为 SQL 存储过程返回的行调用jdbcTemplate.query范围从 100K 到 300K,并且分页在extractData方法内完成。

显示在用户中的页面只有 20 行。

这很慢,有没有办法使用jdbcTemplate.

4

2 回答 2

3

你可以看看这个

一个很好的例子。

于 2013-01-23T05:39:17.423 回答
2

我相信 JdbcTemplate 没有特定的分页功能。但是,即使这样做也可能无法帮助您的代码运行得更快。

通常,面向用户的页面的大小不超过 200 行,因此查询 100-300K 行似乎过多并浪费大量内存。

您需要首先决定使用哪种分页策略。两种常见的策略是查询前 N 个页面,并将其存储在临时缓存中 - 或者仅查询足以填充一个页面大小(例如:200 行),并且仅在用户请求时才查询接下来的 200 行。

您还需要确定缓慢的真正原因是什么。行大小是一个因素,但不是唯一因素。您必须分析您的架构结构、索引、查询连接等。

请记住,在正常用例下——尽管您最多可以向用户展示 10000 个页面,但典型用户不太可能浏览所有这些页面——也许只有前 5-10 个页面很重要——因此,如果你可以,将结果集限制在一个小数字会更有意义

于 2013-01-23T04:55:19.383 回答