oracle分页的4种方式的优缺点

本文介绍了四种不同的SQL分页查询方法及其性能对比:包括常规做法、简单做法、业务做法及分段查询。通过实际案例展示了不同方法的速度差异,并讨论了各种方法在不同场景下的适用性和优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、常规做法——大众写法——速度有衰减,且速度慢
select *
          from (select t.*, rownum rn
                  from (select * from person order by person_Id) t
                 where rownum < 5000000)
         where rn > 4999990
--30m records --180s


2、简单做法:——速度有衰减,且速度一般
select *
  from person
 where rowid in
       (select rid
          from (select rid, rownum rn
                  from (select rowid rid from person order by person_Id) t
                 where rownum < 5000000)
         where rn > 4999990)
--30m records --11s


3、业务做法——速度基本没有衰减,且速度较快,业务有些绑定
每次再次查询>大于原有最大值然后排序

4、分段:——速度没有衰减,且速度快,业务有些绑定,实现较复杂

启动服务一次或定时对表进行主键分段,记录每段起始终止。分页时,按range key select,便没有衰减
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值