实际测试:

数据库:70万条数据

查询第10000页,每页10条。
row_number() 耗时: 2.2秒
rownum 耗时:1.3秒

查询第20000页,每页10条。
row_number() 耗时: 4.5秒+
rownum 耗时:3.8秒+

网上看到的说,row_number()效率最高看来是没有经过大数据测试的。

本来还寄希望于row_number()分页代码简洁些,效率高些能优化现在系统的!让人失望了!

个人分析:新的分页方法(row_number() over(order by t.xxx desc) RN 排序法没有3层嵌套排序效率高),因为over里面的order by需要较长时间(数据量上十万级别时),而又不能在子查询里面综合使用rownum来帮助缩减第一次出来的数据(因为rownum伪列是从取出数据的时候排列的)。

 

  

row_number() over order by与利用rownum查询分页效率分析的更多相关文章

  1. 高效的MySQL分页——利用子查询分页

    ——先抄回来~~~ 首先看一下分页的基本原理: mysql> explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20G*** ...

  2. ROW_NUMBER over (order by **)

    ROW_NUMBER必须指写over (order by **),有时我根本就不想排序,想按原始顺序 )) AS ROWNUM,* FROM t

  3. 利用 ROW_NUMBER() OVER ( ORDER BY 进行选择性排序,按不同字段进行排序处理,分页

    --就在OVER order by 中用case语句进行判断. IF ( OBJECT_ID('tempdb..#TempTable') IS NOT NULL ) DROP TABLE #TempT ...

  4. Row_Number()over(order by....) as

    出自:http://www.2cto.com/database/201307/227103.html Sql Server Row_Number()学习   Row_Number():   row_n ...

  5. 排名函数row_number() over(order by)用法

    1. 定义 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY [列名]DESC) 是先把[列名]降序排列,再为降序以 ...

  6. SQL奇技淫巧(01):给查出的数据排序编个号【row_number() over(order by c)】(mysql,db2,oracle,sqlserver通用)

    我们天天都在跟数据库打交道,写下的代码不计其数,写下的SQL更是可以绕地球几圈.这里收集关于SQL的神奇语法及用法,虽然你可能没有用过,但这些SQL却可以在关键的时候,派上用场. 我对SQL语句的理解 ...

  7. row_number()over(order by id) SQL顺序排列

    select *,row_number()over(order by id) as number_id from [dbo].tb_pccw20140213

  8. LINQ to SQL 模拟实现 ROW_NUMBER() OVER(ORDER BY ...) 的功能

    Ø  前言 本来是想使用 LINQ 实现类似 SQL: ROW_NUMBER() OVER(ORDER BY -) 的功能,但是貌似 LINQ 不支持,反正没找到解决办法,无奈使用了LINQ Sele ...

  9. sql 分页row_number() over(order by key)

    select * from ( select row_number() over(order by BD008_001) as row ,* from (select * from bd008)t ) ...

随机推荐

  1. MyEclipse 选中右侧编辑的文件时自动展开左侧目录树

  2. jq与js 区别

    $(this).html(666); <div id="a">123</div> <script> $("#a").clic ...

  3. android 入门-Activity及 字体

    private Button sButton; private TextView mTextView; private Button fButton; ,,,,}; @Override protect ...

  4. 在Salesforce中创建Schedule的Job去定时触发对应的Class

    在Salesforce中也存在着Job的概念,当然了我们可以创建Schedule的Job去定时触发对应的Class,来完成我们所需要定时处理的功能,比如:定时同步数据. 具体处理步骤如下所示: 1): ...

  5. windowsapi

    内核相关的在:kernel.dll,提供内存管理.进程管理.进程调度.线程管理等等用户相关的在:user32.dll,提供执行用户界面相关的接口界面相关的在:gdi32.dll,提供画图相关的接口

  6. ThinkPHP3.2 volist嵌套循环显示原理

    php页面:$fatherList = $Document->where('pid=1')->select();        foreach($fatherList as $n=> ...

  7. host_network_interfaces_slow_mode_thresholds

    CDH报集群异常: host_network_interfaces_slow_mode_thresholds 警告置为从不-- 主要是我没有查到发生这种情况的原因是什么--

  8. iOS10 UI教程管理层次结构

    iOS10 UI教程管理层次结构 iOS10 UI教程管理层次结构,在一个应用程序中,如果存在多个层次结构,就需要对这些层次结构进行管理.在UIView类中提供了可以用来管理层次结构的方法,让开发者可 ...

  9. [工作中的设计模式]建造者模式builder

    一.模式解析 建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心. 以上是对建造者模式的官方定义,简单说就是对于复杂对象 ...

  10. hdu5438 Ponds dfs 2015changchun网络赛

    Ponds Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Sub ...