位置: 编程技术 - 正文

分页技术原理与实现之分页的意义及方法(一)(实现分页功能的多种原理方案)

编辑:rootadmin

推荐整理分享分页技术原理与实现之分页的意义及方法(一)(实现分页功能的多种原理方案),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:分页系统例题,分页处理算法分析,分页的实现原理,分页技术是什么,分页的基本原理,分页技术的几种实现方法,分页技术是什么,分页技术是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

什么是分页技术 分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止.其实这和我们阅读书籍很类似. 下页显示了两种常见的分页方式:

分页的意义 分页确实有效,但它一定会加大系统的复杂度,但可否不分页呢&#;如果数据量少的话当然可以.但是对于企业信息系统来说数据量不会限制在一个小范围内.如果不顾一切的Select * from某个表,再将返回的数据一古脑的扔给客户,即使客户能够忍受成千上万足够让人眼花缭乱的表格式数据,繁忙的网络,紧张的服务器也会提出它们无声的抗议,甚至有时会以彻底的罢工作为终结.这个结局有点像古代为所欲为的暴君和他忍无可忍的臣民之间的故事. 程序员不是暴君,他希望程序使生活变得更好而不是更糟.考虑到企业信息系统多是三层甚至更多层架构的事实,程序员在向客户展示数据时都应该采取分页的形式.如果他不想被抱怨淹没或是半夜被电话惊醒的话。

从请求发起到返回数据的整个过程 现在你已经下定决心想要分页了,在动手书写代码之前,先让我们回想一下,在典型的三层架构中,从请求发起到返回数据的整个过程.如下所示:

分页技术原理与实现之分页的意义及方法(一)(实现分页功能的多种原理方案)

在哪里进行分页 从上面的图中我们可以观察得知,在SQL语句处理完毕后,数据库,WebApplication和Browser都能进行分页,那在哪里分页好呢&#; 判断的标准是速度,显而易见,数据库服务器,Web应用服务器和客户端之间是网络,如果网络传递的数据量越少,则客户端获得响应的速度越快.而且一般来说,数据库服务器和Web应用服务器的处理能力一般比客户端要强很多.从这两点来看,在客户端分页的方案是最不可取的. 其次就剩下了在Web服务器端分页和在数据库端分页两种方式了,如果选择在Web服务器端分页的话,大部分的被过滤掉的数据还是被传输到了Web应用服务器端,与其这样还不如直接在数据库端进行分页. 因此比较好的分页做法应该是每次翻页的时候只从数据库里检索页面大小的块区的数据。这样虽然每次翻页都需要查询数据库,但查询出的记录数很少,网络传输数据量不大,如果使用连接池更可以略过最耗时的建立数据库连接过程。而在数据库端有各种成熟的优化技术用于提高查询速度,比在应用服务器层做缓存有效多了。

分页的SQL语句 如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySQL数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的方式进行分页. (1)MySql的Limit m,n语句 Limit后的两个参数中,参数m是起始下标,它从0开始;参数n是返回的记录数。我们需要分页的话指定这两个值即可 (2)Oracle数据库的rownum 在Oracle数据库中,分页方式没有MySql这样简单,它需要依靠rownum来实现.Rownum表示一条记录的行号,值得注意的是它在获取每一行后才赋予.因此,想指定rownum的区间来取得分页数据在一层查询语句中是无法做到的,要分页还要进行一次查询.

其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 和RN >= 控制分页查询的每页的范围。 上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM <= 这句上。 选择第到条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM <= 来控制最大值,在查询的最外层控制最小值。而另一种方式是去掉查询第二层的WHERE ROWNUM <= 语句,在查询的最外层控制分页的最小值和最大值。这是,查询语句如下:

对比这两种写法,绝大多数的情况下,第一个查询的效率比第二个高得多。 这是由于CBO优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。 而第二个查询语句,由于查询条件BETWEEN AND 是存在于查询的第三层,而Oracle无法将第三层的查询条件推到最内层(即使推到最内层也没有意义,因为最内层查询不知道RN代表什么)。因此,对于第二个查询语句,Oracle最内层返回给中间层的是所有满足条件的数据,而中间层返回给最外层的也是所有数据。数据的过滤在最外层完成,显然这个效率要比第一个查询低得多。 上面分析的查询不仅仅是针对单表的简单查询,对于最内层查询是复杂的多表联合查询或最内层查询包含排序的情况一样有效。

精彩专题分享:

SQL Server分页技术总结: 其实分页技术还有很多其它技术,比如:Struts、hibernate等等都可实现。

标签: 实现分页功能的多种原理方案

本文链接地址:https://www.jiuchutong.com/biancheng/347568.html 转载请保留说明!

上一篇:PhpMyAdmin 配置文件现在需要一个短语密码的解决方法(phpmyadmin配置文件)

下一篇:win2008 R2 WEB环境配置之MYSQL 5.6.22安装版安装配置方法(windows web server 2008)

  • 个税汇算清缴可以修改收入吗
  • 劳务费税率计算公式
  • 合伙企业交企业所得税还是个人所得税
  • 季度盈利可以弥补以用以前年度亏损弥补
  • 房地产企业土地使用税
  • 研究开发费用的归集
  • 存货换入无形资产考虑增值税
  • 营改增的范围包括
  • 我公司开给对方13个点发票,后期我公司怎么抵税
  • 租入房产改建增值税谁交
  • 营改增后还有消费税吗
  • 简易征收是什么意思和一般纳税人
  • 税控系统技术维护费
  • 计提的管理费用要结转吗
  • 固定资产一次性计入费用的账务处理
  • 母公司如何将子公司转让
  • 采购与付款内部控制开题报告
  • 个税按工资薪金未按时申报的处罚规定
  • 收到股利的现金会计分录
  • 电子发票上传平台失败是什么意思
  • 电子发票跨月怎么开红字发票
  • 一般纳税人转为小规模纳税人后还可以转为一般纳税人吗
  • 城镇土地使用税征收范围
  • 收到非税收入一般缴款书开发票吗
  • 工程在建期间土地税滞纳金
  • 酒店布草洗涤赔偿怎样折旧
  • 保险支付方式有哪些
  • 自创商誉是否能入账
  • 以旧换新的概念
  • 复制快捷键ctrl+c
  • 公允价值变动损益在利润表哪里
  • 银行转账手续费最高多少钱
  • 气象数据32766
  • 快速傅里叶变换matlab
  • 长期股权投资权益法转成本法
  • 预缴增值税需要预缴城建税吗
  • 直播服务费的开票大类
  • 商品出入库台账
  • 帝国cms自动推送插件
  • 开发区政府退税政策合法吗
  • 增值税哪些行业不能抵扣
  • 报关单填制相关规范相关文件
  • SQL server 2008中的数据库能否只包含数据文件
  • sqlserver2005 master与msdb数据库备份恢复过程
  • 代扣款业务的处理方式
  • 顺流交易为什么也要减
  • 发票开具与小票的关系是怎样的?
  • 有限合伙企业需要缴纳企业所得税吗
  • 清理固定资产的税费
  • 家电销售范围包括哪些
  • 停产期间制造费用如何处理
  • 退货款现金流量如何做
  • 报销冲抵什么意思
  • 发票只能用一次吗
  • 销项负数发票如何勾选
  • 账簿设置方法
  • 新准则房地产企业收入确认时间
  • sqlserver多表查询怎么加索引
  • win10预览版21277
  • linux进程管理器
  • linux配置raid5方法
  • 如何修复win7系统文件损坏
  • mac中的快捷键大全
  • wincomp.exe - wincomp进程是什么意思
  • win7小技巧
  • 如何关闭自动启动项目
  • ghost7sp1安装教程
  • 电脑没有声音了是怎么回事
  • [Unity3D]Stencil buffer失效了怎么办
  • python怎么运作
  • Bullet(Cocos2dx)之凸多面体形状和组合形状
  • 浅谈python要进行房价预测的优点和缺点
  • javascript入门基础
  • unity的invoke
  • unity as
  • 细说java
  • 工程咨询服务税需要每月缴纳吗
  • 税务系统更新不能开发票
  • 矿产资源税怎样征收
  • 合肥哪里可以注销电信卡
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设