Oracle的分页查询
- 1 分页查询引入
- 2 Oracle分页查询
1 分页查询引入
关于查询功能, 一次将所有查询结果返回给前台,带来的问题有:
- 1是查询量较大,查询时间多
- 2是前台的数据展示能力有限.
所以一般采用分页查询功能.
Mysql数据库:
使用Limit (page, size)关键字做分页查询.Oracle数据库:
因为Oracle中没有Limit关键字,所以使用rownum
伪列做分页.
2 Oracle分页查询
方法一:
select
a.* from ( select t.*,rownum from test t where rownum <= 20 ) a
where rownum >= 11;
方法二:
select
a.* from ( select t.*,rownum from test t ) a
where rownum >= 11 and rownum <= 20;
进过测试, 第一种方法性能最好,而且随着数量的增大,几乎不受影响。第二种随着数据量的增大,查询速度也越来越慢。
分页的目的就是控制输出结果集大小,将结果尽快的返回.方法一中,返回结果集很少,再过滤; 方法二,返回结果集很大,再进行过滤. 分析可知,方法一效率最高.
tips:
mybatis的分页助手pagehelper中Oracle采用的分页策略就是第二种,效率不高.