赞
踩
关于查询功能, 一次将所有查询结果返回给前台,带来的问题有:
所以一般采用分页查询功能.
Mysql数据库:
使用Limit (page, size)关键字做分页查询.
Oracle数据库:
因为Oracle中没有Limit关键字,所以使用rownum
伪列做分页.
方法一:
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采用的分页策略就是第二种,效率不高.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。