row_number() over order by与利用rownum查询分页效率分析
实际测试:
数据库: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查询分页效率分析的更多相关文章
- 高效的MySQL分页——利用子查询分页
——先抄回来~~~ 首先看一下分页的基本原理: mysql> explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20G*** ...
- ROW_NUMBER over (order by **)
ROW_NUMBER必须指写over (order by **),有时我根本就不想排序,想按原始顺序 )) AS ROWNUM,* FROM t
- 利用 ROW_NUMBER() OVER ( ORDER BY 进行选择性排序,按不同字段进行排序处理,分页
--就在OVER order by 中用case语句进行判断. IF ( OBJECT_ID('tempdb..#TempTable') IS NOT NULL ) DROP TABLE #TempT ...
- Row_Number()over(order by....) as
出自:http://www.2cto.com/database/201307/227103.html Sql Server Row_Number()学习 Row_Number(): row_n ...
- 排名函数row_number() over(order by)用法
1. 定义 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY [列名]DESC) 是先把[列名]降序排列,再为降序以 ...
- SQL奇技淫巧(01):给查出的数据排序编个号【row_number() over(order by c)】(mysql,db2,oracle,sqlserver通用)
我们天天都在跟数据库打交道,写下的代码不计其数,写下的SQL更是可以绕地球几圈.这里收集关于SQL的神奇语法及用法,虽然你可能没有用过,但这些SQL却可以在关键的时候,派上用场. 我对SQL语句的理解 ...
- row_number()over(order by id) SQL顺序排列
select *,row_number()over(order by id) as number_id from [dbo].tb_pccw20140213
- LINQ to SQL 模拟实现 ROW_NUMBER() OVER(ORDER BY ...) 的功能
Ø 前言 本来是想使用 LINQ 实现类似 SQL: ROW_NUMBER() OVER(ORDER BY -) 的功能,但是貌似 LINQ 不支持,反正没找到解决办法,无奈使用了LINQ Sele ...
- sql 分页row_number() over(order by key)
select * from ( select row_number() over(order by BD008_001) as row ,* from (select * from bd008)t ) ...
随机推荐
- go sample - hello world
入门级别的hello world package mainimport "fmt"func main() { fmt.Println("blibliblbibl!&quo ...
- 数据结构之图 Part1
Part 1 预计使用7天的时间来过掉图相关的数据结构.第一天主要是一天图的基本概念,熟练掌握定义是一切交流和沟通的基础. 1定义 1.1图 有穷非空顶点,外加边. G(V,E) Graph Vert ...
- html5 notification桌面提醒功能
html5 notification桌面提醒功能 <!DOCTYPE html> <html lang="en"> <head> <met ...
- JS判断输入值是否为正整数
JS中的test是原来是JS中检测字符串中是否存在的一种模式,JS输入值是否为判断正整数代码: <script type=”text/javascript”> function test( ...
- 把浏览器的私有模式添加到VS中
题记:在用VS进行Web开发的时候,常常希望VS的调试不会对浏览器造成固定的影响,那么使用浏览器的私有模式来启动就很有必要. 前几天SCOTT HANSELMAN分享了一个开发Web应用程序的小技巧, ...
- memcached的最佳实践方案
基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 ...
- TI Zigbee Light Link 参考设计
TI Zigbee Light Link 参考设计 原文出处: http://processors.wiki.ti.com/index.php/Category:ZigBee_Light_Link ...
- Android LayoutInflater详解 (转)
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例 ...
- (C#基础) byte[] 之初始化, 赋值,转换。(转)
byte[] 之初始化赋值 用for loop 赋值当然是最基本的方法,不过在C#里面还有其他的便捷方法. 1. 创建一个长度为10的byte数组,并且其中每个byte的值为0. byte[] myB ...
- cocoaPads 安装及出现Analyzing dependencies之后卡死解决方案
1.安装 a. 查看源 gem sources -l b. 设置源: sudo gem sources -a http://ruby.taobao.org c. 删除源:sudo gem source ...