求教分页效率问题

我想查一个大表的数据,大概有10M条数据,取其中的25条。测试发现两种方法时间差别很大,想求问大神原因。
第一种
SELECT * FROM (SELECT t.*,row_number() OVER (ORDER BY t.id DESC) AS rn FROM td_test t) WHERE rn BETWEEN 9999975 AND 10000000
大概用时5分钟。
第二种
SELECT * FROM (SELECT t.* FROM td_test t ORDER BY t.id DESC) WHERE rownum BETWEEN 9999975 AND 10000000
大概耗时1分30秒

为什么差别如此之大?求原因!

0
扫码支付0.1元 ×
其他相关推荐
oracle 分页效率 比较
Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL分析和执行的优化工具, 它负责生成、制定SQL的执行计划。Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO) RBO: Rule-Based Optimization 基于规则的优化器 CBO: Cost-Based Optimization 基于代价的优化器
分页查询效率问题
之前没有仔细研究过分页查询的问题。无意之中发现不同形式的分页SQL语句对查询效率影响很大。 最简单的分页SQL1: select * from ( select t.*, rownum RN from TABLE_NAME ) where RN > 0 and RN      效率较高的SQL2: SELECT * FROM (SELECT ROWNUM AS row
C#写COM组件
求教求教求教求教求教求教求教
Oracle分页查询效率高
Oracle分页查询效率高 ##我经常这样用,不一定是最优 SELECT* FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM T_THIRD_TAXI_ORDER) A WHERE ROWNUM <= 200) WHERE RN > 0;
MySQL高效分页-mybatis插件PageHelper改进
MySQL分页在表比较大的时候,分页就会出现性能问题,MySQL的分页逻辑如下:比如select * from user limit 100000,10它是先执行select * from user 扫描满足这个SQL语句,拿到执行结果后, 一页一页的找到行号为100000的行,返回接下来的10行数据,出现性能问题的原因有两个,1:它先全表扫描了,整个表,而不是扫描到了满足条件的数据就不扫描了,比...
浅谈PageHelper插件分页实现原理及大数据量下SQL查询效率问题解决
前因:项目一直使用的是PageHelper实现分页功能,项目前期数据量较少一直没有什么问题。随着业务扩增,数据库扩增PageHelper出现了明显的性能问题。几十万甚至上百万的单表数据查询性能缓慢,需要几秒乃至十几秒的查询时间。故此特地研究了一下PageHelper源码,查找PageHelper分页的实现方式。 一段较为简单的查询,跟随debug开始源码探寻之旅。 public Result...
oracle分页查询的效率分析
ROWNUM 可能都知道ROWNUM只适用于小于或小于等于,如果进行等于判断,那么只能等于1,不能进行大于的比较。 ROWNUM是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推。 ROWNUM总是从1开始,不管当前的记录是否满足查询结果,ROWNUM返回的值都是1,如果这条记录的值最终满足所有的条件,那么ROWNUM会递加,下一条记录的R
Mybatis分页插件 - PageHelper很好很强大,转载
1.引入分页插件 1.引入Jar包 如果你想使用本项目的jar包而不是直接引入类,你可以在这里下载各个版本的jar包(点击Download下的jar即可下载) https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/ http://repo1.
PostgreSQL,mysql的高效高性能分页方法
原文地址: http://www.fuchaoqun.com/2009/04/efficient-pagination-using-mysql/ 原文内容: PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”Efficient Pagination Using MySQL“的报告,有很多亮点,本文是在原文基础上的进一步延伸。 首先看一下
iBatis大数据量分页查询的性能问题分析及改进
感谢 http://www.iteye.com/topic/544765;http://www.iteye.com/topic/566605 首先看一下iBatis的分页代码是怎么执行的 iBatis中,具体负责执行sql的类是 com.ibatis.sqlmap.engine.execution.SqlExecutor。 负责分页查询的方法是executeQuery —>handle...
oracle 分页性能
用户表T_DB_USERS,记录数60万 分页语句一: select t.*,rawtohex(SYS_GUID()) mmm_guid from ( select a.*,rownum rn from T_DB_USERS a) t where rn>10 and rn<=30; 执行时间 0.281 秒 分页语句二: select t.*,rawtohex(SYS...
优化limit分页(延迟关联)
MYSQL limit分页优化
转载access的分页查询效率问题
ACCESS数据库大数据量分页的几种方法比较及测试结果分析大数据量分页, 分页效率, ACCESS, 分页, ASP本文解决的问题:<br />1.ACCESS是否存在更有效率的分页方法?<br />2.现有ACCESS大数据量10万条数据分页的效率测试<br />3.ACCESS的数据承载量到底有多大?<br /><br />    相信很多ASP的站点还在使用access数据库,因为access数据库无须开专门的数据库空间,调用,迁移也方便,节省费用。另外对网站搭建者的专业能力要求也相对低一些。但随着网
求教一道关于求解最优化问题的编程问题~
求教一道关于求解最优化问题的编程问题~
MyBatis limit分页的性能问题
今天在学习MyBatis分页插件的时候,在别人博客看到这样的一句话  博客地址:https://www.cnblogs.com/kangoroo/p/7998433.html 当时看到这话觉得挺不可思议,觉得这不符合自己的认知。那就开始实际测试看看。 数据库有1000021条数据,id设为主键索引的情况下测试结果如下 alter table indextable add primar...
发疯Hibernate分页问题,性能优化!
最近写了一个Hibernate分页,之前用游标来实现得到count 总行数..用HQL语句查询!可是现在问题出现了,但数据达到海量的时候,出现比较慢,现在要进行优化: 1.不能使用游标得到count总行数! ScrollableResults rs = query.scroll(ScrollMode.SCROLL_INSENSITIVE);  rs.last();  return (rs.getR...
使用Linq查询数据进行分页时遇到的性能问题
最近需要对客户的系统进行升级,在对一张记录只有7767条记录的表进行分次查询时,每次查询500条,16次查询居然使用了2分钟时间。代码如下: public static List GetList(int pageIndex, int pageSize, out int count) { using (var db = new ClientDBDataC
hibernate底层的分页如何提高查询速度?
待完成
Mysql中limit的用法与效率问题
Mysql中limit的用法:在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 SELECT * FROM table   LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数...
oracle的分页优化,真的坑啊
本来接到一个300万数据的表的优化任务,看了别人写的sql,找了半天发现where条件后面使用了to_char函数而且它还使用了sysdate来判断日期是否相等,也就是说有300万条数据,这个sysdate就要执行300万次,所以把sysdate换成常量,用java的时间格式处理好传递过来,然后感觉to_char执行效率太低,网上找个半天没有几个说正确的,有一个代替to_char的函数叫trunc...
vb-mschart查询Access数据
vb-mschart查询Access数据, 顺便求教。问题在里面。 noleic@foxmail.com 谢谢
求教关于视窗中滚动条 滚动后 擦除和重绘的问题
关于滚动条 重绘 和 擦除的问题 急急急 求教
sqlserver中使用row_number进行分页,效率很高!速度很快!
最近,童鞋要做一个分页,数据量很大,几十万条数据,更坑爹的是,还是要经过表连接进行查询,速度慢得像乌龟!!                                     怎么进行优化,可以让逻辑更清晰,效率更高呢?我试探的过程大概分为以下几个步骤:               1.首先因为要进行多张表连接,所以在数据库中先做了一个视图,把表连接起来。(但是这样查询速度和直接在
PageHelper分页插件在面对大数据的时候的问题
先上方法,如图,这是PageHelper  分页并统计(每次执行2条语句,一条select count语句,一条分页语句)  第一条语句拼装的方法。sql:SELECT COUNT(*) FROM ( xxxxx )AS tab 不知道有没小伙伴在使用这个插件的时候发现,当数据量很大,然后你查询数据总量的时候,xxxxx这条sql查询所有的数据肯定是很慢的。这个时候你就会发现,你的页面会非常的缓慢...
mysql 分页 count 查询效率低下分析
当数据库的数据超过几百万条的时候,项目中会遇到一些count 函数的查询效率低下的现象。一:SELECT  COUNT(0)FROM  clinic_for_regist a,  sys_dict b,  clinic_index c WHERE a.del_flag = '0'   AND b.type = 'TIME_OF_DAY'   AND a.time_desc = b.value  
jquery-easyui-datagrid中的问题改进,关于一次性查询和分页查询的问题
datagrid可以实现服务器上分页,但是不管怎样分页都要到数据库里查一次, 现在我想有的少量数据把在缓存到session中,分页直接从session中取,但有时还要从数据库里获取新的信息,所以我想把这个功能放在 datagrid刷新按钮上,要如何去拦截刷新按钮的方法的事件监听。这样就可以点击刷新按钮时去数据库里查,没有点击就要去session中查。 我的方法是:   在jquery...
MySQL的limit用法和分页查询的性能分析及优化
一、limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELECT * FROM table LIMIT [offset,] rows | `rows OFFSET offset ` (LIMIT offset, `length`) SELECT * FROM table where conditio
mysql大数据量使用limit分页,随着页码的增大,查询效率越低下。
转载地址:http://www.cnblogs.com/lpfuture/p/5772055.html 测试实验 1.   直接用limit start, count分页语句, 也是我程序中用的方法: select * from product limit start, count 当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时
延迟加载解决offset过大导致的分页性能问题
当我们展示一个列表中的内容时,难免会遇到分页问题,因为列表中的内容数量可能很多,但是用户能一次看到的界面大小是有限的,不可能一个界面展示所有的内容,从后端一次性取太多的数据也会给后端造成额外的压力。 一般来说,存储在Mysql中的数据我们有两种分页方式:基于id的分页和基于offset的分页。下面以我在实际生产环境中遇到的一个sql为例,相关字段因为保密问题均用A、B、C……代替。SELECT
Oracle分页查询效率比较
Oracle分页查询分页查询格式: SELECT * FROM ( SELECT A. * , ROWNUM RN FROM ( 真正的查询 ) A WHERE ROWNUM = 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM = 21控制分页查询的每页的范围。 上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是...
MySQL11:Sql分页效率
Limit a , b 表示查询前a+b条,去掉前a条,取到a~b条的条目。 对分页limit m,n的优化。(使m值变小就会提高sql效率) 原理:记录当前页的最大值和最小值,计算跳转页和当前页的跳转偏移,由于页面相近这个偏移量不会很大,这样的话m值较小,大大减小扫描行数。其实传统的limit m ,n 相对偏移一直是第一页。这样的话,越往后效率越低。    limit10000,20的意...
mysql分页高效率方法
SELECT id,user_id, booth_id, fid, start_time, end_time, stay_time, user_type, user_activity, user_interest, booth_type FROM track_20180518 where id&amp;gt;=(SELECT id FROM track_20180518 ORDER BY user_i...
MySQL之Limit分页性能问题
这几天一直在能mysql的分页查询功能,网上有人说mysql自带的limit分页功能性能不佳。于是自己动手测试了下400W的数据,使用limit 4000000,5所需的时间在4.5s左右,实在让人无法接受。于是在网上查询了下limit性能优化。得出两个结论: 原始SQL:select * from user limit 4000000,5;所需时间4.5s左右。 1.使用索引进行
SQLServer大量数据高效率分页
以下为从大数据量表检索分页数据的有效方法 测试时,先从LargeTable表选出1000条记录分页呈现 --TIME_SEGMENT为数据表字段 declare @pagesize int--每页大小 declare @currentpage int--当前页 set @pagesize=10 set @currentpage=1 SELECT TOP (@pagesize) * FR
mongodb大数据量分页查询效率问题
最常见的分页采用的是skip+limit这种组合方式,这种方式对付小数据倒也可以,但是对付上几百上千万的大数据,只能力不从心,skip如果跳过大量的数据会很慢,并且会越查越慢。 //代码大概看下意思就行了 const list = db.getCollection('sent_logs').count({ field_1: 'wx5dacee99764a8af5' }).skip(200)....
sybase的分页处理
据说,ibatis的分页对于sybase数据库来说不太好用。
sql2000,千万级大数据量分页存储过程效率测试附代码
在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话。   测试环境 硬件:CPU 酷睿双核T5750  内存:2G 软件:Windows server 2003    +   Sql server 2005   OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTabl
JPA效率优化(EntityGraph)
JPA效率优化n+1问题 当我们使用JPA提供给我们的find方法时,如果查询出来的对象关联着另外10个对象,那么JPA将会发送1+10次查询(这个对象本身要查询一次,然后每个关联对象再查询一次)。此时如果有100个用户正同时发送请求,这个时候就会产生1100次查询,这将会大大增加服务器的开销,因此我们要避免这个问题。 Fetch Join 在JPA中,我们可以使用fetch join来获取我们需要
EF学习和使用(七)EF性能优化篇
自从ITOO平台旗下的评教系统问世之后,其性能问题引起了轩然大波。CPU占用过高,页面反映速度超慢,根本无法正常使用,为此我们专门成立一个性能优化小队,去研究为什么系统性能这么低,怎么优化性能?框架中用到了EntityFramework,WCF,EasyUI等技术,所以我们大胆猜测可能是这三方面影响了系统的整体性能。经过一段时间的研究和实践,发现我们在使用EF的过程中,由于经验原因对EF的不了解,不
一个高效率的ASP分页算法
这篇文章要达到的目的就是,实现大数据分页浏览并最优化速度。     建立一个web 应用,分页浏览功能必不可少;这个问题也是长久以来最普遍的问题,目前也得到了较好的解决,其中象ASP 程序的分页算法有很多,比如使用ado 对象的PageSize 这些属性,按记录总数计算页,然后跳转记录集再输出;也有编写存储过程实现分页数据,这些方面各有优缺点,以下本人介绍一种应用实际项目中速度非常快的分页算法
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链问题 提高java学习效率