我使用struts作为框架在Java中编写网站编程,我尝试使用分页来破解可能需要太长时间才能返回的查询,使用类似于此的查询:
select col
from ( select col,rownum AS rn from table )
where rn >= 1
and rn <=10
这是我已经看到的分页标准,但是我没有看到任何性能提升,只是选择整个表和仅用Java分页,就像Oracle计算{ {1}},它必须执行一次我的查询。
理想情况下,我只想搜索此表结果的子集,而不是搜索整个表,然后丢弃部分结果。 有没有办法做到这一点?因为如果没有,我就无法理解为什么懒惰的分页会更好,然后加载整个列表然后用Java分开。
答案 0 :(得分:0)
有,但在有足够的数据来模拟完全成熟的数据库之前,你不会看到它。
正如评论中提到的其他人一样,在表格中生成几百万行,然后开始使用分页并观察您的查询计划。现在你有一些具有现实生活气息的东西,你可以比较在内存中缓存表格。