造轮子:论Top与ROW_NUMBER读取第一页的效率问题
2016-02-08 11:40
567 查看
http://www.cnblogs.com/Leo_wl/p/4921799.html
SELECT TOP 30 * FROM users WHERE nID>2000 And nID<50000 ORDER BY nID DESC; SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY nID asc) AS rownum,* FROM users Where nID>2000 And nID<50000 ) AS D WHERE rownum>0 AND rownum<31; SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY nID asc) AS rownum,* FROM users Where nID>2000 And nID<50000 ) AS D WHERE rownum BETWEEN 1 AND 30;他们的不同之处在于“提取N条记录”的这个操作,Top N和 WHERE rownum>0 AND rownum<31。它们具体是如何运行我讲不出理论,但是我可以做个比方:体育老师让我们跑30步的距离,Top N的做法就是跑30步,自己边跑边数;WHERE rownum>0 AND rownum<31 相当于老师在30步的位置花了个标记,你只管死跑,到了那个标记就相当于跑了30步。我想做了标记死跑这个要快点吧,:)
相关文章推荐
- 使用Linux操作系统命令检查服务器主板上每个内存插槽的内存大小
- 【翻译自mos文章】在使用Linux大页内存的配置中,使用drop_cache时导致的ORA-600 [KGHLKREM1]问题
- 文本绘制附加选项NSStringDrawingOptions的解释
- Linux关机/重启命令
- linux例行性命令
- JAVA企业级应用TOMCAT实战 【转】
- linux Centos6.5使用yum安装mysql
- 《1024伐木累》-小白篇之开发网站,三天!(中篇-3)-总章节十二
- 阿里云linux CentOS6.5(nginx+PHP-fpm)及RDS初级使用指南和简单安全设置
- Kinect For Windows V2开发日志五:使用OpenCV显示彩色图像及红外图像
- linux习惯每天一个命令之mount命令
- Linux忘记 root密码的解决办法
- php 打包网站在线压缩为zip
- 在linux下搭建java环境
- 最全列表: 80 多个 Linux 系统管理员必备的监控工具
- tomcat与maven的安装与使用
- linux vsftpd安装
- linux内核的idr学习(一)
- linux yum命令详解
- linux清屏命令clear和reset