`
TonyLian
  • 浏览: 402098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据查询 常见的4种分页方法

阅读更多
常见的4种分页方法:
1)控件分页,主要工作在前台【软翻页】
后台一次性返回所有数据都交给前台的VO,前台利用类似DataGrid这样的控件,一次性显示一部分,实现分页功能

2)服务层分页,主要工作在后台【软翻页】
前台的查询请求,原样提交给持久层,持久层返回所有结果,服务层保持所有结果,并选择性的反馈给前台其中一页。
前台再发来翻页请求时,不必再向持久层请求查询,而直接从保持的结果中返回其他内容即可。

3)持久层软分页,主要工作在后台【软翻页】
和2的原理类似,但是这次缓存的工作由持久层框架来负责。服务层第一次访问持久层时,持久层对数据库做全件检索,但只给服务层返回第一页的数据。从第二页开始,服务层再对持久层提出请求时,持久层不必再做数据库访问,而直接从缓存中将数据提供给服务层。

4)持久层硬分页,主要工作在后台【硬翻页】
无论你实用什么持久层工具,总之复写它的SQL执行函数,要根据不同数据库实现使用不同的方言。
说白了就是重新拼写SQL文字符串,使SQL文在不改变原有用意的基础上,加上记录条数选择的功能
如:select top 100  from tab; (SqlServer) ,这个 top 100 就是从Bean中的pageSize之类的控制属性取得并拼到SQL文中的

4种方式各有优缺点,各自有不同的实用场景。前3种都是“软翻页”,最后一种是“硬翻页”
1)优点:一次性访问服务器。一次耗时,之后的翻页非常之快
   缺点:第一次耗时非常高;且由于数据量的问题,不适用于大规模数据查询;数据实时性不高

2)优点:较之第1种,首次查询耗时大为减少(因为网络传输量大为下降)
   缺点:首次耗费在服务器端的查询时间仍然不少;由于数据一次性查出保存在服务层,所以数据的实时性不高

3)基本同2,但由于有些持久层框架已经具备了很好的缓存软翻页功能,使服务层代码的编写不必再多考虑翻页的问题了。

4)优点:查询速度最快;查询的结果实时性最好
    缺点:根据不同的数据库所支持的分页查询语法,某些数据库(如Oracle)当查询到倒数几页时,时间耗费几乎与第2种相同;
    由于高实时性,可能造成用户在翻页时,漏看数据(如:每页显示100条,用户看第一页时,第101条数据在第二页,所以看不到。在此用打开第一页到翻页到第二页的这段时间里,其他用户删除了前100条数据中的任一一条,此用户看第2页时,刚才的第101条数据现在是第100条了,所以它在第一页而不在第二页,这就导致了此用户漏看数据。有点像论坛顶帖子:)

对于一般商业开发来说,通常在第3和第4种中选择一种。总体来说第4种应该是比较好的选择,优点大于缺点。
2
0
分享到:
评论
1 楼 isky 2009-01-06  
[align=center][size=xx-small][color=red][size=xx-small][color=darkred][flash=200,200][flash=200,200][url][url][img][url][img][img][img][img][img][b][/b][i][/i][u][/u]
引用
[/img][/img][/img][/img][/img][/url][/img][/url][/url][/flash][/flash][/color][/size][/color][/size][/align]

相关推荐

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

    3. **分页查询**:分页是一种优化大数据量查询的技术,它将结果集分割成多个小块(页面),每次只返回用户请求的一部分数据。这样不仅可以减轻服务器压力,还能减少网络传输的负担,提高响应速度。 4. **C#线程**:...

    数据分页以及高级查询

    数据分页是一种在网页上展示大量数据的常见方法,它将结果集分成若干页进行显示,而不是一次性加载所有数据,这大大减少了内存占用,提高了页面加载速度,同时使得用户能够更方便地浏览和管理数据。在Java Web开发中...

    常见的几种分页语句和方法

    ### 常见的几种分页语句和方法 在软件开发中,特别是Web应用程序中,数据分页是一项非常重要的技术。它可以帮助我们更高效地处理大量数据,并提高用户体验。本文将详细介绍几种常用的分页方法,包括SQL语句分页、...

    asp十万级数据分页方法 长文章分页方法

    在ASP(Active Server Pages)开发中,处理大量数据时,分页是一种常见的优化手段,尤其在展示如文章列表这样的长内容时。本文将详细介绍如何在ASP中实现十万级数据的高效分页,让网页加载更加流畅,提升用户体验。 ...

    查询的数据分页 JAVAWEB

    在JavaWeb开发中,数据分页是常见的需求,特别是在处理大量数据时,为了提高用户体验,避免一次性加载所有数据导致页面响应慢或者内存溢出。本篇文章将深入探讨如何实现基于JavaWeb的数据分页功能。 首先,我们需要...

    千万级数据分页查询存储过程SQLServer

    在SQL Server中,有两种常见的分页查询方法:`ROW_NUMBER()`函数和`OFFSET-FETCH`子句。 1. `ROW_NUMBER()`函数: 使用`ROW_NUMBER()`函数,我们可以为结果集中的每一行分配一个唯一的行号,然后根据这个行号进行...

    完美解决MybatisPlus插件分页查询不起作用总是查询全部数据问题

    配置完成后,当你调用如`selectPage`这样的分页查询方法时,MP会自动处理分页逻辑。正常情况下,这将触发两条SQL语句的执行:第一条是计算总记录数,第二条是带有`LIMIT`限制的查询当前页数据的SQL。如果没有配置...

    java 数据分页显示

    在Java编程中,数据分页显示是Web应用中常见的需求,尤其在处理大量数据时,为了提高用户体验并优化服务器性能,通常需要将数据分成多个页面进行展示。本篇将深入探讨Java实现数据分页显示的核心技术和策略。 首先...

    PB 做的分页查询24行一页

    在Oracle 11g中,可以使用SQL查询语言来实现分页,常见的方法是使用ROWNUM伪列结合WHERE子句或者子查询来限制返回的行数。例如,要获取第一页的数据,你可以编写如下的SQL: ```sql SELECT * FROM ( SELECT t.*, ...

    javaweb两中分页方法

    本文将详细介绍两种常用的JavaWeb分页方法:基于数据库查询的分页和基于内存的分页。 一、基于数据库查询的分页 1. SQL查询分页: 这种方法直接在SQL查询语句中实现分页。大多数数据库系统如MySQL、Oracle、SQL ...

    hbase查询分页分页

    最常见的方法是使用StartRow和StopRow键来控制查询范围。StartRow指定查询的起始行键,而StopRow则是结束行键。通过设置这两个参数,我们可以有效地实现分页查询。 例如,假设我们有一批行键,按照字典序排序,要...

    PHP分页(四种分页方法)类

    基础查询分页是最常见的分页方式,它通过在SQL查询语句中添加LIMIT和OFFSET关键字来限制每次请求的数据量。例如,如果每页显示10条记录,第二页的查询会使用OFFSET 10 LIMIT 10。这种分页方法简单易懂,但当数据量很...

    nodejs mysql 实现分页的方法

    Node.js结合MySQL实现分页查询是一种常见的数据处理方式,在Web应用中尤为常见。分页可以有效提高页面的响应速度,并优化用户的浏览体验。本文主要介绍了在Node.js环境下,如何使用MySQL数据库实现分页功能。 首先...

    分页缓存

    在IT行业中,分页缓存是一种优化大数据量查询性能的技术,尤其在Web应用程序中非常常见。它通过将数据库查询结果存储在内存缓存中,减少对数据库的直接访问,从而提高系统响应速度和用户体验。本篇文章将深入探讨...

    WPF的数据分页控件

    在Windows Presentation Foundation(WPF)中,数据分页控件是一种强大的工具,它允许用户以分页方式查看大量数据,从而提高应用程序的性能和用户体验。本文将深入探讨WPF的数据分页控件及其核心概念、使用方法以及...

    SSH分页查询方法

    在IT行业中,分页查询是一种常见的数据管理策略,特别是在处理大量数据时,它能有效提高网页或应用的加载速度和用户体验。"SSH分页查询方法"是指在使用Struts2、Hibernate和Spring三大Java开发框架集成开发时实现的...

    .Net数据分页系统

    在.NET开发环境中,数据分页是一项常见的需求,特别是在构建Web应用程序时,为了提高用户体验和页面加载速度,通常需要对大量数据进行分页显示。本文将深入探讨如何在.NET中实现数据分页系统,包括基本原理、关键...

    Oracle 3种分页SQL方法比较

    在Oracle数据库中,分页查询是一项常见的操作,用于在大量数据中检索特定部分,而无需加载整个结果集。本文将详细探讨三种常用的Oracle分页SQL方法:ROWNUM、ROWNUM结合子查询以及新引入的Oracle 12c的FETCH NEXT ...

    AD域分页查询全部域用户数据

    这两种方法都可以实现分页查询,但JNDI更常见于轻量级应用,而JDBC-AD适合于需要数据库样式的查询操作。 在描述中提到的`ADConnectTest.java`文件可能是一个示例代码,用于演示如何通过编程方式执行AD分页查询。...

    实现分页查询(上)

    本篇文章将深入探讨分页查询的概念、实现原理以及常见方法,以帮助开发者构建更加高效、用户友好的应用程序。 一、分页查询的概念 分页查询是指在处理大量数据时,将其分为多个小块(页),每次只加载一部分数据到...

Global site tag (gtag.js) - Google Analytics