查看ADO分页的相关使用说明
创始人
2024-06-19 06:11:06
0

当然同样可以改造成其他的ADO分页,PHP语言所使用。为了更好的使用这样的ADO分页代码,其混合了函数语言和物件导向程序编制语言,并且完美的适用于编程、算法、技术和探索性开发,因此可以在使用的过程当中感受到趣味性和吸引力。

1,rs.RecordCount
很显然,RecordCount就是用来显示数据库表中一共多少条记录的,也可以形象地说表中一共有多少行。经常用在分页中就是一共有N篇文章等总计的信息显示。

2,rs.PageSize
rs.PageSize也就是一页的大小,也就表示一张ADO分页可以显示记录的条数。值是自己定义的,比如经常看到的每页显示N篇文章之类的信息。

3,rs.AbsolutePage 和 rs.pagecount

说到分页,一定不能不提到 rs.AbsolutePage 。记录集的AbsolutePage属性最主要的作用就是决定着当前显示的是第几页。它的值是有依据的,指定了rs.PageSize,那么rs.pagecount的信息值就是rs.RecordCount和rs.PageSize整除结果。比如:总信息记录rs.RecordCount共20条,每页显示条数rs.PageSize设为5条,那么页数rs.pagecount数就是20/5=4页次,而rs.AbsolutePage则就只能是第1页,第2页……第4页。

先看ADO分页函数:

这是一种非常高效的分页算法。当数据表中的数据量成百上千万的时候,上面的这种分页算法的响应时间是非常短的,通常在几十毫秒之内。原理很简单,就是每次分页,我只取需要的几十条记录而已,使用SELECT TOP也正是基于这样的考虑。

上面的两个分页算法的例子中,flymorn都使用了时间字段time来进行ADO分页,因为在我接触的绝大多数系统中,我们都需要把用户最近更新(包括新添加的记录以及新修改过的老记录)的内容展示在前面,如果仅仅使用自动编号的ID作为排序字段的话,用户编辑过的老信息将无法展示在前面。这就是flymorn使用时间字段的原因了。

这里又涉及到聚合索引的问题了。默认情况下,我们是以自动编号ID作为主键,并且用作聚合索引列,如果上面的算法中,使用这样的ID列来排序的话,效率会更高,数据库响应的时间会更少;然而,我提到了最近更新的内容需要展示在前面的问题。#t#

所以,我们必须使用时间字段来排序。因此,为了更高的分页效率,我们可以在数据库设计的时候,把这个时间字段设计为聚合索引列。 通过这样的设计后,整个分页效率就会得到非常高的提高了。

然而,把这个时间字段作为聚合索引列,存在又一个小问题。因为数据表在排列数据的时候,是按照聚合索引列来进行物理排序的,当用户添加数据的时候,没有什么问题,在数据表的末尾添加就行了;当用户编辑信息的时候。

数据库需要根据这个聚合索引列,把刚编辑过的信息也提到表的末尾,这里就需要耗费一定的时间了。就是说,当我们以时间字段为聚合索引列的时候,我们就需要在 ADO分页的时候多耗费一点的时间。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...