`

分页查询的性能

阅读更多
引用
在查询中,我们可以注意到,类似于“select xx from table where rownum < n”(n>1)这样的查询是有正确含义的,而“select xx from table where rownum = n”这样的查询只在n=1的时候成立,“select xx from table where rownum > n”(n>1)这样的查询只能得到一个空集。另外“select xx from table where rownum > 0”这个查询会返回所有的记录。这是为什么呢?原因就在于Oracle对rownum的处理上,rownum是在得到结果集的时候产生的,用于标记结果集中结果顺序的一个字段,这个字段被称为“伪数列”,也就是事实上不存在的一个数列。它的特点是按顺序标记,而且是逐次递加的,换句话说就是只有有rownum=1的记录,才可能有rownum=2的记录。

    让我们回头来分析一下在where中使用rownum作为查询条件的情况。在rownum取=1,或者rownum <= n (n>1)的时候,没有问题。那么为什么当条件为rownum = n或者rownum >= n时明明有数据却只能得到一个空集呢?假设我们的查询条件为rownum = 2,那么在查询出的第一条记录的时候,oracle标记此条记录rownum为1,结果发现和rownum=2的条件不符,于是结果集为空。

和rownum相似,oracle还提供了另外一个伪数列:rowid。不过rowid和rownum不同,一般说来每一行数据对应的rowid是固定而且唯一的,在这一行数据存入数据库的时候就确定了。可以利用rowid来查询记录,而且通过rowid查询记录是查询速度最快的查询方法。(这个我没有试过,另外要记住一个长度在18位,而且没有太明显规律的字符串是一个很困难的事情,所以我个人认为利用rowid查询记录的实用性不是很大)rowid只有在表发生移动(比如表空间变化,数据导入/导出以后),才会发生变化。
根据我个人理解,rowid是和索引关联的。利用索引时,就是通过索引对应的rowid去具体的表查询的。
分享到:
评论

相关推荐

    Oracle分页查询性能优化代码详解

    对于数据库中表的数据的 Web 显示,如果没有展示顺序的需要,而且因为满足条件的记录如此之多,就不得不对数据进行分页处理。常常用户并不是对所有数据都感兴趣的,或者大部分情况下,他们只看前几页。 通常有以下...

    SQL server 分页查询

    本文将深入探讨SQL Server中的分页查询技术,帮助读者掌握如何高效地进行数据分页,以提升应用程序的性能和用户体验。 ### SQL Server分页查询概述 分页查询是指从大量数据中按需取出一部分数据的过程,通常用于...

    SQLite 查询所有 分页查询 查询个数

    在处理大量数据时,为了提高效率并避免一次性加载所有数据导致性能下降,通常会采用分页查询的方式来获取数据。下面我们将详细探讨SQLite中的查询所有、分页查询以及查询个数的相关知识点。 1. 查询所有数据: 在...

    hbase分页查询实现.pdf

    HBase作为一个NoSQL数据库,具有高性能、高可扩展性和高可靠性等特点,但是在查询方面却存在一些限制,例如不支持分页查询。这就使得开发者需要自己实现分页查询功能。本文将讲解如何使用Java语言实现HBase的分页...

    Android开发之数据库的分页查询代码

    总结,Android数据库的分页查询是提升应用性能的关键技术之一,通过合理的设计和优化,可以为用户提供流畅的数据浏览体验。理解SQLite的基础操作,掌握分页查询的原理和实现,以及学会利用Loader和缓存策略,能帮助...

    基于MySql多表分页查询优化技术.pdf

    《基于 MySql 多表分页查询优化技术》一文主要探讨了在大数据量场景下,如何优化 MySql 的多表分页查询,以提升数据库的访问性能和用户体验。文章指出,随着互联网技术的快速发展,大数据应用变得越来越普遍,随之而...

    基于springmvc实现分页查询

    本篇文章将详细探讨如何基于Spring MVC实现分页查询,这对于任何处理大量数据的Web应用都是至关重要的。 首先,理解分页的基本概念。分页是将大型数据集划分为较小、更易管理的部分,以提高用户体验并减少服务器...

    PHP程序设计-3期(KC016) 4.3.7分页查询记录拓展知识.doc

    因此,为经常用于查询的列创建合适的索引,并结合适当的查询策略,是优化分页查询性能的关键。 总结起来,PHP程序设计中的分页查询性能优化主要包括:理解`LIMIT`语句的性能特点,利用覆盖索引来减少数据访问,以及...

    java多线程分页查询

    ### Java多线程分页查询知识点详解 ...综上所述,多线程分页查询是一种非常有效的技术手段,能够显著提升大规模数据处理时的系统性能。开发者可以根据实际应用场景灵活调整参数配置和算法逻辑,进一步优化查询效率。

    oracle分页查询sql

    为了进一步优化分页查询的性能,可以使用HINT来指定查询优化器的行为。例如,可以通过添加`/*+ FIRST_ROWS */`提示来优先处理分页查询的第一批结果。 ```sql SELECT /*+ FIRST_ROWS */ FROM ( SELECT A.*, ROWNUM ...

    大数据量多线程执行分页查询

    多线程技术与分页查询相结合,可以有效地解决这一问题,提高系统性能并优化用户体验。以下是对标题和描述中涉及知识点的详细解释: 1. **大数据量处理**:当数据库中的数据达到百万甚至亿级时,单线程查询可能导致...

    JPA分页查询与条件分页查询

    JPA(Java Persistence API)是Java平台上的一个标准,用于管理关系数据库中的数据。Spring Data JPA 是基于 JPA ...在设计和实现分页查询时,应考虑到性能因素,比如避免全表扫描,优化索引,以及合理设置分页大小等。

    ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询

    9. **性能优化**:为了提高性能,通常会使用服务器端分页,而不是一次性加载所有数据。这样,只有当前页的数据会被传输,降低了网络负担。 通过以上知识点的组合和定制,可以创建出强大的、支持分页查询的用户界面...

    winform高效率的分页查询

    在.NET框架中,WinForm应用程序通常用于开发桌面...通过合理的SQL设计、索引优化、异步处理等手段,我们能够在保证性能的同时,提供用户友好的分页浏览功能。在项目中,可以参考DataGridPages这个示例进行实践和学习。

    实现分页查询(上)

    在网页开发中,分页查询是一项...总结,实现分页查询是提高Web应用性能和用户体验的关键技术。通过理解其原理和各种实现方法,开发者可以根据实际需求选择最适合的方案,同时注意优化策略,确保系统的高效稳定运行。

    数据库分页优化技术分析与实现

    总体来说,本文在分析了基于Oracle数据库的传统分页查询方法之后,提出了索引扫描分页技术,并通过实践证明了该技术在提升分页查询性能方面的有效性。这些研究成果不仅对理论研究具有指导意义,也对实际应用中的...

    oracle分页查询并返回总记录数据存储过程

    2. **性能优化**:在实际应用中,如果查询涉及复杂的连接或过滤条件,考虑使用索引来优化查询性能。 3. **安全性**:当存储过程接收外部输入时,需注意防止 SQL 注入攻击。 通过以上介绍,我们可以看到使用存储过程...

    mysql千万级数据分页查询性能优化

    当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条), 如下: select * from order limit 10, 20 0.016秒 select * from order limit 100, 20 0.016秒 ...

Global site tag (gtag.js) - Google Analytics