引用
在查询中,我们可以注意到,类似于“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去具体的表查询的。
分享到:
相关推荐
对于数据库中表的数据的 Web 显示,如果没有展示顺序的需要,而且因为满足条件的记录如此之多,就不得不对数据进行分页处理。常常用户并不是对所有数据都感兴趣的,或者大部分情况下,他们只看前几页。 通常有以下...
本文将深入探讨SQL Server中的分页查询技术,帮助读者掌握如何高效地进行数据分页,以提升应用程序的性能和用户体验。 ### SQL Server分页查询概述 分页查询是指从大量数据中按需取出一部分数据的过程,通常用于...
在处理大量数据时,为了提高效率并避免一次性加载所有数据导致性能下降,通常会采用分页查询的方式来获取数据。下面我们将详细探讨SQLite中的查询所有、分页查询以及查询个数的相关知识点。 1. 查询所有数据: 在...
HBase作为一个NoSQL数据库,具有高性能、高可扩展性和高可靠性等特点,但是在查询方面却存在一些限制,例如不支持分页查询。这就使得开发者需要自己实现分页查询功能。本文将讲解如何使用Java语言实现HBase的分页...
总结,Android数据库的分页查询是提升应用性能的关键技术之一,通过合理的设计和优化,可以为用户提供流畅的数据浏览体验。理解SQLite的基础操作,掌握分页查询的原理和实现,以及学会利用Loader和缓存策略,能帮助...
本篇文章将详细探讨如何基于Spring MVC实现分页查询,这对于任何处理大量数据的Web应用都是至关重要的。 首先,理解分页的基本概念。分页是将大型数据集划分为较小、更易管理的部分,以提高用户体验并减少服务器...
针对这一挑战,韩兵、王照清和廖联军在《基于MySql多表分页查询优化技术》一文中提出了一种新的查询优化算法,旨在提升大数据量场景下的MySql数据库访问性能。 该文章首先分析了MySql多表分页查询面临的挑战。由于...
因此,为经常用于查询的列创建合适的索引,并结合适当的查询策略,是优化分页查询性能的关键。 总结起来,PHP程序设计中的分页查询性能优化主要包括:理解`LIMIT`语句的性能特点,利用覆盖索引来减少数据访问,以及...
### Java多线程分页查询知识点详解 ...综上所述,多线程分页查询是一种非常有效的技术手段,能够显著提升大规模数据处理时的系统性能。开发者可以根据实际应用场景灵活调整参数配置和算法逻辑,进一步优化查询效率。
为了进一步优化分页查询的性能,可以使用HINT来指定查询优化器的行为。例如,可以通过添加`/*+ FIRST_ROWS */`提示来优先处理分页查询的第一批结果。 ```sql SELECT /*+ FIRST_ROWS */ FROM ( SELECT A.*, ROWNUM ...
在MySQL中,处理千万级大表的深度分页查询时,通常会遇到性能问题。这是因为MySQL的查询优化器在面对大量数据的分页请求时,可能选择全表扫描而不是利用索引来提高效率。这个问题在描述中的例子中得到了体现,当尝试...
JPA(Java Persistence API)是Java平台上的一个标准,用于管理关系数据库中的数据。Spring Data JPA 是基于 JPA ...在设计和实现分页查询时,应考虑到性能因素,比如避免全表扫描,优化索引,以及合理设置分页大小等。
在.NET框架中,WinForm应用程序通常用于开发桌面...通过合理的SQL设计、索引优化、异步处理等手段,我们能够在保证性能的同时,提供用户友好的分页浏览功能。在项目中,可以参考DataGridPages这个示例进行实践和学习。
在网页开发中,分页查询是一项...总结,实现分页查询是提高Web应用性能和用户体验的关键技术。通过理解其原理和各种实现方法,开发者可以根据实际需求选择最适合的方案,同时注意优化策略,确保系统的高效稳定运行。
多线程技术与分页查询相结合,可以有效地解决这一问题,提高系统性能并优化用户体验。以下是对标题和描述中涉及知识点的详细解释: 1. **大数据量处理**:当数据库中的数据达到百万甚至亿级时,单线程查询可能导致...
总体来说,本文在分析了基于Oracle数据库的传统分页查询方法之后,提出了索引扫描分页技术,并通过实践证明了该技术在提升分页查询性能方面的有效性。这些研究成果不仅对理论研究具有指导意义,也对实际应用中的...
2. **性能优化**:在实际应用中,如果查询涉及复杂的连接或过滤条件,考虑使用索引来优化查询性能。 3. **安全性**:当存储过程接收外部输入时,需注意防止 SQL 注入攻击。 通过以上介绍,我们可以看到使用存储过程...
当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条), 如下: select * from order limit 10, 20 0.016秒 select * from order limit 100, 20 0.016秒 ...