有序数据的记录方法和装置、有序数据的访问方法和装置制造方法及图纸

技术编号:8532782 阅读:151 留言:0更新日期:2013-04-04 15:46
本申请提供了一种有序数据的记录方法和装置,一种有序数据的访问方法和装置,其中的记录方法具体包括:针对有序数据,建立磁盘文件;在该磁盘文件中将所述有序数据按块方式进行记录,所述块的数量为两个或多个,所述记录过程包括:在每个块中记录相应有序数据的字段区间和该字段区间内的记录数目,其中,在数据库中所述有序数据按照所述字段进行有序存储。本申请只需从所述特定分页内容所对应的记录所覆盖的块及相应的区间中读取数据,能够做到尽量避免读取冗余数据,以减少磁盘的IO操作。

【技术实现步骤摘要】
有序数据的记录方法和装置、有序数据的访问方法和装置
本申请涉及计算机数据存储
,特别是涉及一种有序数据的记录方法和装置,一种有序数据的访问方法和装置。
技术介绍
为了减少网络流量,提高页面的访问速度,在线应用程序往往不能在一页中显示全部内容,而是将全部内容按照一定规则分成多页进行显示,每页显示一定数目的记录。这就要求用户通过分页的方式向服务器发起页面访问请求,由服务器根据页面访问请求中的页码,每次分别从后台数据库中获取相应的记录数据并显示出来。假设服务器后台数据库中有ID为1、2、3、4、5、6、7、8、9、...、100共100条记录存在磁盘中,假设分页的大小为10,即每页显示10条记录。如果当前用户请求第2页的内容,则表示用户需要的数据是ID从11到20的记录数据。在接收到上述情景下的页面访问请求时,现有的服务器通常首先将全部的100条记录从后台的磁盘读取至内存,然后从内存筛选出ID从11到20的记录数据。但是,除了ID从11到20的10条记录数据外,其它90条记录数据都是冗余读取的;从磁盘的角度而言,所述冗余读取无疑增加了磁盘的IO(输入输出,InputOutput)操作,降低了后台的IO性能,导致消耗了过多的读取时间,从而增加了页面访问请求的处理时间;从内存的角度而言,由于内存的总大小是有限的,所述冗余读取会占用大量的内存,在分页总数过大时,甚至会出现内存不足的情况,而内存不足容易引发磁盘读取故障等一系列问题,从而降低了页面访问请求的处理准确率。总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高页面访问请求的处理效率和处理准确率
技术实现思路
本申请所要解决的技术问题是,提供一种有序数据的记录方法和装置,能够在磁盘文件中将有序数据按块方式进行记录,其中,每个块用于记录相应有序数据的区间和记录数目。相应的,本申请还提供了一种有序数据的访问方法和装置,只需从所述特定分页内容所对应的记录所覆盖的块及相应的区间中读取数据,能够做到尽量避免读取冗余数据,以减少磁盘的IO操作。为了解决上述问题,本申请公开了一种有序数据的记录方法,包括:针对有序数据,建立磁盘文件;在该磁盘文件中将所述有序数据按块方式进行记录,所述块的数量为两个或多个,所述记录过程包括:在每个块中记录相应有序数据的字段区间和该字段区间内的记录数目,其中,在数据库中所述有序数据按照所述字段进行有序存储。优选的,针对不同的排序指标,在该磁盘文件中将相应有序数据记录至不同的块,其中,所述排序指标为所述有序数据的排序依据。另一方面,本申请还公开了一种有序数据的记录装置,包括:建立模块,用于针对有序数据,建立磁盘文件;及记录模块,在该磁盘文件中将所述有序数据按块方式进行记录,所述块的数量为两个或多个,包括:块记录子模块,用于在每个块中记录相应有序数据的字段区间和该字段区间内的记录数目,其中,在数据库中所述有序数据按照所述字段进行有序存储。优选的,所述记录模块,具体用于针对不同的排序指标,在该磁盘文件中将相应有序数据记录至不同的块,其中,所述排序指标为所述有序数据的排序依据。另一方面,本申请还公开了一种有序数据的访问方法,包括:接收用户针对有序数据的分页访问请求;依据所述分页访问请求,计算相应记录的访问偏移和访问长度;依据所述访问偏移和访问长度,获取所述分页访问请求对应的记录覆盖的块及相应的字段区间;其中,所述块位于所述有序数据的磁盘文件中,在每个块中记录有相应有序数据的字段区间和该字段区间内的记录数目;依据所述覆盖的字段区间,访问数据库中的有序数据。优选的,所述依据所述访问偏移和访问长度,获取所述分页访问请求对应的记录覆盖的字段区间及相应的块的步骤,包括:读取该磁盘文件中的块;如果所述访问偏移落在某块的字段区间内,则以该块和相应的字段区间作为所述分页访问请求对应的记录覆盖的第一块及相应的第一字段区间;如果所述访问偏移与所述访问长度的运算结果落在某块的字段区间内,则以该块和相应的字段区间作为所述分页访问请求对应的记录覆盖的第二块及相应的第二字段区间;其中,如果所述有序数据为升序排列,则所述运算结果为所述访问偏移与所述访问长度的和,如果所述有序数据为升序排列,则所述运算结果为所述访问偏移与所述访问长度的差;将所述第一块、第一块与第二块之间的连续块和第二块组成的合并块及相应的字段区间,作为所述分页访问请求对应的记录覆盖的块和相应的字段区间。优选的,所述块具有相应的块编号,所述块编号的顺序与块中所记录字段区间的顺序一致或者相反;所述获取所述分页访问请求对应的记录覆盖的第一块及相应的第一字段区间的步骤,包括:从最小的块编号开始,依次读取该磁盘文件中的块,并进行相应的第一覆盖判断,所述第一覆盖判断过程包括:判断所述访问偏移是否落在当前块的字段区间内,若是,则以该当前块和相应的字段区间作为所述分页访问请求对应的记录覆盖的第一块及相应的第一字段区间,并结束读取;否则,块编号加1,继续读取该磁盘文件中的块;所述获取所述分页访问请求对应的记录覆盖的第二块及相应的第二字段区间的步骤,包括:从最小的块编号开始,依次读取该磁盘文件中的块,并进行相应的第二覆盖判断,所述第二覆盖判断过程包括:判断所述访问偏移与所述访问长度的运算结果是否落在当前块的字段区间内,若是,则以该当前块和相应的字段区间作为所述分页访问请求对应的记录覆盖的第二块及相应的第二字段区间;否则,块编号加1,继续读取该磁盘文件中的块;其中,如果所述有序数据为升序排列,则所述运算结果为所述访问偏移与所述访问长度的和,如果所述有序数据为升序排列,则所述运算结果为所述访问偏移与所述访问长度的差。优选的,针对不同的排序指标,在该磁盘文件中对应有不同的块,其中,所述排序指标为所述有序数据的排序依据;所述依据所述访问偏移和访问长度,获取所述分页访问请求对应的记录覆盖的块及相应的字段区间的步骤,包括:依据所述分页访问请求,获得相应有序数据的访问排序指标;从该磁盘文件中获取与所述访问排序指标相应的访问块;通过读取所述访问块,获取所述分页访问请求对应的记录覆盖的块及相应的字段区间。优选的,依据所述覆盖的字段区间,访问数据库中的有序数据的步骤,包括:判断所述覆盖的字段区间与所述分页访问请求是否匹配,若是,则从数据库中读取与所述覆盖的字段区间相应的记录数据;否则,从数据库中读取与所述覆盖的字段区间相应的记录数据至内存,并在内存中对所读取的记录数据进行筛选,直至筛选结果与所述分页访问请求匹配。另一方面,本申请还公开了一种有序数据的访问装置,包括:接口模块,用于接收用户针对有序数据的分页访问请求;计算模块,用于依据所述分页访问请求,计算相应记录的访问偏移和访问长度;覆盖获取模块,用于依据所述访问偏移和访问长度,获取所述分页访问请求对应的记录覆盖的块及相应的字段区间;其中,所述块位于所述有序数据的磁盘文件中,在每个块中记录有相应有序数据的字段区间和该字段区间内的记录数目;及访问模块,用于依据所述覆盖的字段区间,访问数据库中的有序数据与现有技术相比,本申请具有以下优点:相对于现有技术中磁盘文件以ID或ID段作为数据库索引,本申请在磁盘文件中记录数据库分页内容的索引,具体而言,在磁盘文件中将有序数据本文档来自技高网
...
有序数据的记录方法和装置、有序数据的访问方法和装置

【技术保护点】
一种有序数据的记录方法,其特征在于,包括:针对有序数据,建立磁盘文件;在该磁盘文件中将所述有序数据按块方式进行记录,所述块的数量为两个或多个,所述记录过程包括:在每个块中记录相应有序数据的字段区间和该字段区间内的记录数目,其中,在数据库中所述有序数据按照所述字段进行有序存储。

【技术特征摘要】
1.一种有序数据的访问方法,其特征在于,包括:接收用户针对有序数据的分页访问请求;依据所述分页访问请求,计算相应记录的访问偏移和访问长度;其中,所述访问偏移为所述分页访问请求对应记录相对于所述有序数据的首记录的编号偏移;依据所述访问偏移和访问长度,获取所述分页访问请求对应的记录覆盖的块及相应的字段区间;其中,所述块位于所述有序数据的磁盘文件中,在每个块中记录有相应有序数据的字段区间和该字段区间内的记录数目,所述字段区间和所述字段区间内的记录数目用于数据库分页内容的索引;依据所述覆盖的字段区间,访问数据库中的有序数据。2.如权利要求1所述的方法,其特征在于,所述依据所述访问偏移和访问长度,获取所述分页访问请求对应的记录覆盖的字段区间及相应的块的步骤,包括:读取该磁盘文件中的块;如果所述访问偏移落在某块的字段区间内,则以该块和相应的字段区间作为所述分页访问请求对应的记录覆盖的第一块及相应的第一字段区间;如果所述访问偏移与所述访问长度的运算结果落在某块的字段区间内,则以该块和相应的字段区间作为所述分页访问请求对应的记录覆盖的第二块及相应的第二字段区间;其中,如果所述有序数据为升序排列,则所述运算结果为所述访问偏移与所述访问长度的和,如果所述有序数据为逆序排列,则所述运算结果为所述访问偏移与所述访问长度的差;将所述第一块、第一块与第二块之间的连续块和第二块组成的合并块及相应的字段区间,作为所述分页访问请求对应的记录覆盖的块和相应的字段区间。3.如权利要求2所述的方法,其特征在于,所述块具有相应的块编号,所述块编号的顺序与块中所记录字段区间的顺序一致或者相反;所述获取所述分页访问请求对应的记录覆盖的第一块及相应的第一字段区间的步骤,包括:从最小的块编号开始,依次读取该磁盘文件中的块,并进行相应的第一覆盖判断,所述第一覆盖判断过程包括:判断所述访问偏移是否落在当前块的字段区间内,若是,则以该当前块和相应的字段区间作为所述分页访问请求对应的记录覆盖的第一块及相应的第一字段区间,并结束读取;否则,块编号加1,继续读取该磁盘文件中的块;所述获取所述分页访问请求对应的记录覆盖的第二块及相应的第二字段区间...

【专利技术属性】
技术研发人员:佘智勇
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1