oracle九百万级的分页sql优化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_17011423/article/details/79564216

先看看数据库music表的大小:

SELECT count(1) from music
这里写图片描述
优化之前的sql:

select * from (SELECT m.* ,ROWNUM rn from music m) m where m.rn>0 and m.rn<=20
执行结果:
[SQL]select * from (SELECT m.* ,ROWNUM rn from music m) m where m.rn>0 and m.rn<=20
受影响的行: 0
时间: 136.409s
这个分页可以说是让人头痛了

优化之后的sql:

select * from (SELECT m.* ,ROWNUM rn from music m where ROWNUM<=20) WHERE rn>0
执行结果:
[SQL]select * from (SELECT m.* ,ROWNUM rn from music m where ROWNUM<=20) WHERE rn>0
受影响的行: 0
时间: 3.603s

只需要了三秒多,本人测试是连的wifi,比实际要慢很多,放到项目中基本只要1S左右的时间。

猜你喜欢

转载自blog.csdn.net/qq_17011423/article/details/79564216
今日推荐