Oracle的分页查询

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采用的分页策略就是第二种,效率不高.

你可能感兴趣的:(学习笔记,oracle,数据库)