数据分页查询与数据库的构建的方法与装置制造方法

文档序号:6515669阅读:187来源:国知局
数据分页查询与数据库的构建的方法与装置制造方法
【专利摘要】本发明提供一种查询所需时间短,查询时系统负荷小的分页查询方法,以及与该分页查询方法相对应的分页查询数据库的构建方法。同时本发明还提供了相应的装置。所述的数据分页查询的方法,包括以下步骤:接收分页查询请求,根据请求查询统计表,得到与被请求查询的页面相关的索引表,在相关的索引表中获得被请求查询的页面所包含的消息的消息主键,根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。这样的查询方法,将数据量庞大的单表查询分解为数据量较小的分表分页查询,通过降低查询的数据量,提高查询效率,减小系统负荷。
【专利说明】数据分页查询与数据库的构建的方法与装置
【技术领域】
[0001]本发明涉及计算机数据库信息检索领域,尤其涉及数据分页查询的方法以及与之对应的数据库的构建方法及其对应的装置。
【背景技术】
[0002]现代的信息社会,数据库中的信息量越来越大,而人们时常需要根据自身需要检索查询数据库中的各种信息。当数据量过大时,查询时可能会导致各种各样的问题发生,例如:服务器资源被耗尽,因数据传输量过大而使处理超时等,最终都会导致查询无法完成。同时,查询得到的结构往往很多,甚至是海量数据。如果统统一起显示,往往也让人无法找到其真正想要获知的信息。
[0003]因此在查询列表时,一个常用的策略就是“分页查询”(具体显示效果参照图3所示),也就是说不要一次性查询所有的数据,每次只查询一“页”的数据。这样分批次地进行处理,可以呈现出较好的用户体验,对服务器资源的消耗也较全部查询降低很多。因为分页的好处是可以减少数据交换,每次查询仅显示一定数量的数据,从而有效减少数据库压力。
[0004]传统的分页查询是在单表中进行分页查询,也就是直接在数据库的主信息表中进行查询,根据查询的用户所属的读者域,主信息表中确定其可见的消息范围,然后根据分页的信息,主信息表中根据消息的序号,筛选出当前被查询的页面所要显示的消息主键,然后提取相应的消息内容进行显示。
[0005]使用这样的数据分页查询方法,当数据量较大时(例如超过百万条),即使采用分页查询,也会导致系统性能很差,查询所需时间很长。

【发明内容】

[0006]本发明的目的在于,提供一种查询所需时间短,查询时系统负荷小的分页查询方法,以及与该分页查询方法相对应的分页查询数据库的构建方法。同时本发明还提供了相应的装置。
[0007]为实现上述发明目的,本发明所述的数据分页查询的方法,包括以下步骤:
[0008]接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,以及被请求查询的页面的消息条数;
[0009]根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数;
[0010]根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键;[0011]根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
[0012]优选地,所述主信息表记录有读者域,所述分页查询请求中的信息包括:查询的用户所属的读者域;
[0013]查询统计表时,根据被请求查询的页面的起始消息序号、被请求查询的页面的消息条数以及查询的用户所属的读者域查询统计表,所述索引表记录有消息主键、消息编号、维度数据与读者域,所述统计表记录有统计表主键、读者域、索引表标识信息及每张索引表中按读者域对应的消息总数;
[0014]根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键。
[0015]更优选地,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号;
[0016]在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、最大编号,查找索引表中相应消息编号的号段。
[0017]本发明提供的分页查询数据库的构建方法,包括以下步骤:
[0018]在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容;
[0019]创建统计表与索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数。
[0020]优选地,所述主信息表记录有读者域;
[0021]所述索引表记录有消息主键、消息编号、维度数据与读者域,所述统计表记录有统计表主键、读者域、索引表标识信息及每张索引表中按读者域对应的消息总数。
[0022]更优选地,所述统计表记录有每张索弓I表中按读者域对应的消息最小、最大编号。
[0023]更优选地,所述分页查询数据库的构建方法还包括步骤:
[0024]在主信息表中增加数据,写入新增加数据的消息主键、消息编号、维度数据、消息内容与读者域;
[0025]判断主信息表中新增加数据的维度数据所在数据段是否已有索引表,若有,更新索引表,在对应的索引表中添加新增加数据的消息主键、消息编号、维度数据与读者域,若无,创建新的索引表,并在新的索引表中添加新增加数据的消息主键、消息编号、维度数据与读者域;
[0026]更新统计表数据,将更新后的索引表的相关信息或新的索引表的相关信息更新到统计表中。
[0027]相对于现有技术的分页查询方法,本发明通过将主信息表中的消息主键、消息编号与维度数据按预设的维度数据的数据段分布于2张以上的索引表中,然后再通过统计表统计各索引表以及相应的索引表中的消息总数或相应的索引表中的消息的始编号与末编号。分页查询时,先查询统计表,根据所要查询的页面的起始消息序号,以及所要查询的页面的消息数量,得到与本次分页查询相关的索引表,然后根据得到的索引表,在相应的索引表中查询得到被查询的消息的消息主键,然后根据消息主键在主信息表中查询得到所要查询的消息。这样的查询方法,将数据量庞大的单表查询分解为数据量较小的分表分页查询,通过降低查询的数据量,提高查询效率,减小系统负荷。
[0028]本发明还提供了一种数据分页查询的装置,包括以下模块:
[0029]显示模块,用于显示分页查询的结果;
[0030]接收模块,用于接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,被请求查询的页面的消息条数以及查询的用户所属的读者域;
[0031]存储模块,用于存储主信息表、索引表与统计表,所述主信息表记录有:消息主键、消息编号、维度数据、读者域与消息内容,所述索引表记录有消息主键、消息编号、读者域与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及每张索引表中按读者域对应的消息总数;
[0032]查询模块,读取存储模块中的存储信息,并将查询结果传输至显示模块,并用于根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键,根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
[0033]优选地,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号;
[0034]所属查询模块还用于,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、最大编号,查找索弓I表中相应消息编号的号段。
[0035]优选地,该装置包括以下模块:
[0036]主信息表创建模块,用于在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容;
[0037]索引表创建模块,用于创建索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中;
[0038]统计表创建模块,用于创建统计表,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数。
【专利附图】

【附图说明】
[0039]图1为本发明【具体实施方式】所述分页查询数据表的构建方法的流程示意图;
[0040]图2为本发明【具体实施方式】所述数据分页查询方法的流程示意图;
[0041]图3为【背景技术】所述分页显示的效果图;
[0042]图4为本发明【具体实施方式】所述数据分页查询的装置结构示意图。
[0043]标号说明:
[0044]401、查询模块,402、存储模块,403、显示模块,404、接收模块,405主信息表创建模块,406索引表创建模块,407、统计表创建模块。【具体实施方式】
[0045]为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0046]本实施例首先提供了一个分页查询数据库的构建方法,包括以下步骤:
[0047]SlOl在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据、读者域与消息内容;
[0048]为便于理解,举例有这样一张主信息表,其在数据表中的数据格式如表一所不:
[0049]表一(主信息表1):
[0050]
【权利要求】
1.一种数据分页查询的方法,包括以下步骤: 接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,以及被请求查询的页面的消息条数; 根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数; 根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键; 根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
2.根据权利要求1所述的数据分页查询的方法,其特征在于: 所述主信息表记录有读者域,所述分页查询请求中的信息包括:查询的用户所属的读者域; 查询统计表时,根据被请求查询的页面的起始消息序号、被请求查询的页面的消息条数以及查询的用户所属的读者域查询统计表,所述索引表记录有消息主键、消息编号、维度数据与读者域,所述统计 表记录有统计表主键、读者域、索引表标识信息及每张索引表中按读者域对应的消息总数; 根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键。
3.根据权利要求2所述的数据分页查询的方法,其特征在于:所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号; 在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、最大编号,查找索引表中相应消息编号的号段。
4.一种分页查询数据库的构建方法,包括以下步骤: 在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容; 创建统计表与索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数。
5.根据权利要求4所述的分页查询数据库的构建方法,其特征在于: 所述主信息表记录有读者域; 所述索引表记录有消息主键、消息编号、维度数据与读者域,所述统计表记录有统计表主键、读者域、索引表标识信息及每张索引表中按读者域对应的消息总数。
6.根据权利要求5所述的分页查询数据库的构建方法,其特征在于,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号。
7.根据权利要求5所述的分页查询数据库的构建方法,其特征在于,所述分页查询数据库的构建方法还包括步骤: 在主信息表中增加数据,写入新增加数据的消息主键、消息编号、维度数据、消息内容与读者域; 判断主信息表中新增加数据的维度数据所在数据段是否已有索引表,若有,更新索引表,在对应的索引表中添加新增加数据的消息主键、消息编号、维度数据与读者域,若无,创建新的索引表,并在新的索引表中添加新增加数据的消息主键、消息编号、维度数据与读者域; 更新统计表数据,将更新后的索引表的相关信息或新的索引表的相关信息更新到统计表中。
8.一种数据分页查询的装置,包括以下模块: 显示模块,用于显示分页查询的结果; 接收模块,用于接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,被请求查询的页面的消息条数以及查询的用户所属的读者域; 存储模块,用于存储主信息表、索引表与统计表,所述主信息表记录有:消息主键、消息编号、维度数据、读者域与消息内容,所述索引表记录有消息主键、消息编号、读者域与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及每张索引表中按读者域对应的消息总数; 查询模块,读取存储模块中的存储信息,并将查询结果传输至显示模块,并用于根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键,根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
9.根据权利要求8所述的数据分页查询的装置,其特征在于,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号; 所属查询模块还用于,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、最大编号,查找索引表中相应消息编号的号段。
10.根据权利要求8所述的数据分页查询的装置,其特征在于,包括以下模块: 主信息表创建模块,用于在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容; 索引表创建模块,用于创建索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中; 统计表创建模块,用于创建统计表,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数。
【文档编号】G06F17/30GK103530378SQ201310486341
【公开日】2014年1月22日 申请日期:2013年10月15日 优先权日:2013年10月15日
【发明者】林少中, 林利炜, 鲁峰, 侯伟, 陈敏 申请人:福建榕基软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1