oracle九百万级的分页sql优化
2018-03-15 10:25
176 查看
先看看数据库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左右的时间。
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左右的时间。
相关文章推荐
- [Oracle] “表中有数据,但select count(*)的结果为0”问题的解决办法
- Oracle 安装 注意事项
- Oracle checkpoint详解
- Oracle创建用户、表空间、导入导出命令
- 终于又更新了-关于oracle以及opencv之重装[2012.4.6]
- oracle 执行PL/sql语句
- 【Oracle】密码过期-解决方案
- 在mysql数据库中创建oracle scott用户的四个表及插入初始化数据
- Oracle两种临时表的创建与使用详解
- 海量IT资料 + 各种平台下的Oracle安装文件 + 公开课录像 + 各种视频教程资料
- Hibernate+Oracle注解式完整实例
- Oracle 10g应用优化
- 在sqlplus里用sys用户登录oracle
- python cx_Oracle模块的安装和使用
- oracle 类型转换函数
- ORACLE,SQLSERVER,DB2 删除重复数据SQL
- ORACLE向SQL转换参考(转)
- oracle快速删除重复的记录
- 【转】oracle对大对象类型操作:blob,clob,nclob,bfile
- oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)