CN103530378B - 数据分页查询与数据库的构建的方法与装置 - Google Patents
数据分页查询与数据库的构建的方法与装置 Download PDFInfo
- Publication number
- CN103530378B CN103530378B CN201310486341.XA CN201310486341A CN103530378B CN 103530378 B CN103530378 B CN 103530378B CN 201310486341 A CN201310486341 A CN 201310486341A CN 103530378 B CN103530378 B CN 103530378B
- Authority
- CN
- China
- Prior art keywords
- message
- page
- inquiry
- concordance list
- major key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种查询所需时间短,查询时系统负荷小的分页查询方法,以及与该分页查询方法相对应的分页查询数据库的构建方法。同时本发明还提供了相应的装置。所述的数据分页查询的方法,包括以下步骤:接收分页查询请求,根据请求查询统计表,得到与被请求查询的页面相关的索引表,在相关的索引表中获得被请求查询的页面所包含的消息的消息主键,根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。这样的查询方法,将数据量庞大的单表查询分解为数据量较小的分表分页查询,通过降低查询的数据量,提高查询效率,减小系统负荷。
Description
技术领域
本发明涉及计算机数据库信息检索领域,尤其涉及数据分页查询的方法以及与之对应的数据库的构建方法及其对应的装置。
背景技术
现代的信息社会,数据库中的信息量越来越大,而人们时常需要根据自身需要检索查询数据库中的各种信息。当数据量过大时,查询时可能会导致各种各样的问题发生,例如:服务器资源被耗尽,因数据传输量过大而使处理超时等,最终都会导致查询无法完成。同时,查询得到的结构往往很多,甚至是海量数据。如果统统一起显示,往往也让人无法找到其真正想要获知的信息。
因此在查询列表时,一个常用的策略就是“分页查询”(具体显示效果参照图3所示),也就是说不要一次性查询所有的数据,每次只查询一“页”的数据。这样分批次地进行处理,可以呈现出较好的用户体验,对服务器资源的消耗也较全部查询降低很多。因为分页的好处是可以减少数据交换,每次查询仅显示一定数量的数据,从而有效减少数据库压力。
传统的分页查询是在单表中进行分页查询,也就是直接在数据库的主信息表中进行查询,根据查询的用户所属的读者域,主信息表中确定其可见的消息范围,然后根据分页的信息,主信息表中根据消息的序号,筛选出当前被查询的页面所要显示的消息主键,然后提取相应的消息内容进行显示。
使用这样的数据分页查询方法,当数据量较大时(例如超过百万条),即使采用分页查询,也会导致系统性能很差,查询所需时间很长。
发明内容
本发明的目的在于,提供一种查询所需时间短,查询时系统负荷小的分页查询方法,以及与该分页查询方法相对应的分页查询数据库的构建方法。同时本发明还提供了相应的装置。
为实现上述发明目的,本发明所述的数据分页查询的方法,包括以下步骤:
接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,以及被请求查询的页面的消息条数;
根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数;
根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键;
根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
优选地,所述主信息表记录有读者域,所述分页查询请求中的信息包括:查询的用户所属的读者域;
查询统计表时,根据被请求查询的页面的起始消息序号、被请求查询的页面的消息条数以及查询的用户所属的读者域查询统计表,所述索引表记录有消息主键、消息编号、维度数据与读者域,所述统计表记录有统计表主键、读者域、索引表标识信息及每张索引表中按读者域对应的消息总数;
根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键。
更优选地,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号;
在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、 最大编号,查找索引表中相应消息编号的号段。
本发明提供的分页查询数据库的构建方法,包括以下步骤:
在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容;
创建统计表与索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数。
优选地,所述主信息表记录有读者域;
所述索引表记录有消息主键、消息编号、维度数据与读者域,所述统计表记录有统计表主键、读者域、索引表标识信息及每张索引表中按读者域对应的消息总数。
更优选地,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号。
更优选地,所述分页查询数据库的构建方法还包括步骤:
在主信息表中增加数据,写入新增加数据的消息主键、消息编号、维度数据、消息内容与读者域;
判断主信息表中新增加数据的维度数据所在数据段是否已有索引表,若有,更新索引表,在对应的索引表中添加新增加数据的消息主键、消息编号、维度数据与读者域,若无,创建新的索引表,并在新的索引表中添加新增加数据的消息主键、消息编号、维度数据与读者域;
更新统计表数据,将更新后的索引表的相关信息或新的索引表的相关信息更新到统计表中。
相对于现有技术的分页查询方法,本发明通过将主信息表中的消息主键、消息编号与维度数据按预设的维度数据的数据段分布于2张以上的索引表中,然后再通过统计表统计各索引表以及相应的索引表中的消息总数或相应的索引表中的消息的始编号与末编号。分页查询时,先查询统计表,根据所要查询的页面的起始消息序号,以及所要查询的页面的消息数量,得到与本次分页查询相关的索引表,然后根据得到的索引表,在相应的索引表中查询得到被查询的 消息的消息主键,然后根据消息主键在主信息表中查询得到所要查询的消息。这样的查询方法,将数据量庞大的单表查询分解为数据量较小的分表分页查询,通过降低查询的数据量,提高查询效率,减小系统负荷。
本发明还提供了一种数据分页查询的装置,包括以下模块:
显示模块,用于显示分页查询的结果;
接收模块,用于接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,被请求查询的页面的消息条数以及查询的用户所属的读者域;
存储模块,用于存储主信息表、索引表与统计表,所述主信息表记录有:消息主键、消息编号、维度数据、读者域与消息内容,所述索引表记录有消息主键、消息编号、读者域与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及每张索引表中按读者域对应的消息总数;
查询模块,读取存储模块中的存储信息,并将查询结果传输至显示模块,并用于根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键,根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
优选地,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号;
所属查询模块还用于,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、最大编号,查找索引表中相应消息编号的号段。
优选地,该装置包括以下模块:
主信息表创建模块,用于在数据库中创建主信息表,所述主信息表记录有: 消息主键、消息编号、维度数据与消息内容;
索引表创建模块,用于创建索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中;
统计表创建模块,用于创建统计表,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数。
附图说明
图1为本发明具体实施方式所述分页查询数据表的构建方法的流程示意图;
图2为本发明具体实施方式所述数据分页查询方法的流程示意图;
图3为背景技术所述分页显示的效果图;
图4为本发明具体实施方式所述数据分页查询的装置结构示意图。
标号说明:
401、查询模块,402、存储模块,403、显示模块,404、接收模块,405主信息表创建模块,406索引表创建模块,407、统计表创建模块。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本实施例首先提供了一个分页查询数据库的构建方法,包括以下步骤:
S101在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据、读者域与消息内容;
为便于理解,举例有这样一张主信息表,其在数据表中的数据格式如表一所示:
表一(主信息表1):
消息编号 | 消息主键 | 消息内容 | 消息时间 | 读者域 |
01 | 00000001 | 消息内容1 | 2012.12.01 | USER-A |
02 | 00000002 | 消息内容2 | 2013.01.12 | USER-A,USER-B |
03 | 00000003 | 消息内容3 | 2013.01.12 | USER-A,USER-C |
04 | 00000004 | 消息内容4 | 2013.01.12 | USER-A,USER-B,USER-C |
05 | 00000005 | 消息内容5 | 2013.01.12 | USER-A,USER-B,USER-C |
06 | 00000006 | 消息内容6 | 2013.01.12 | USER-A,USER-B,USER-C |
07 | 00000007 | 消息内容7 | 2013.01.12 | USER-B |
08 | 00000008 | 消息内容8 | 2013.01.12 | USER-A,USER-B |
09 | 00000009 | 消息内容9 | 2013.01.12 | USER-B,USER-C |
10 | 00000010 | 消息内容10 | 2013.01.12 | USER-C |
本发明中,维度数据系指在查询中用于分页排序依据的数据,例如,在OA数据库中,我们需要根据时间顺序分页显示查询者可见的任务消息,那么,在该实施例中,时间数据即维度数据,又如,在查询产品数据库时,我们需要根据产品的价格顺序分页显示查询者可见的产品及相应的价格消息,那么在该实施例中价格数据即维度数据。
上述实施例中,维度数据为时间数据,分页查询时,按时间进行分页查询。
S102创建统计表与索引表,所述索引表记录有消息主键、消息编号、维度数据与读者域,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中,所述统计表记录有统计表主键、读者域、索引表标识信息及每张索引表中按读者域对应的消息总数或消息最小、最大编号。
索引表标识信息是可以对应到唯一索引表身份的信息,可以是索引表名称,索引表编号等,总之通过统计表中索引表标识信息这一字段,可以确定对应的索引表。
为了区别查询对象的可见消息范围,赋予不同查询者不同的权限,在数据库中记载有不同消息的读者域。
对应于表一的主信息表,我们创建相应的索引表,表二与表三。
表二(时间索引表1):
消息编号 | 年份 | 消息主键 | 读者域 |
01 | 2012 | 00000001 | USER-A |
表三(时间索引表2):
消息编号 | 年份 | 消息主键 | 读者域 |
02 | 2013 | 00000002 | USER-A,USER-B |
03 | 2013 | 00000003 | USER-A,USER-C |
04 | 2013 | 00000004 | USER-A,USER-B,USER-C |
05 | 2013 | 00000005 | USER-A,USER-B,USER-C |
06 | 2013 | 00000006 | USER-A,USER-B,USER-C |
07 | 2013 | 00000007 | USER-B |
08 | 2013 | 00000008 | USER-A,USER-B |
09 | 2013 | 00000009 | USER-B,USER-C |
10 | 2013 | 00000010 | USER-C |
数据库中,默认创建统计表,根据时间索引表的年份及读者域新增统计数据,对应于上述表一至表三的主信息表与索引表,我们建立如表四所示的统计表:
表四(统计表1):
统计表编号 | 统计主键 | 时间索引表 | 总数 | 消息最小编号 | 消息最大编号 | 读者域 |
01 | 00000001 | 2012 | 1 | 01 | 01 | USER-A |
02 | 00000002 | 2013 | 6 | 02 | 08 | USER-A |
03 | 00000003 | 2013 | 7 | 02 | 09 | USER-B |
04 | 00000004 | 2013 | 6 | 03 | 10 | USER-C |
在上述实施例中,索引表标识信息为时间索引表这一栏,因为预设的维度数据按年份设置,也就是……2011年、2012年、2013年、2014年……各建立一张索引表,所以根据2012确认到唯一对应的索引表表二,根据2013可以确认到唯一对应的索引表表三。
在数据库信息更新,新增消息时,进行如下步骤:
S103当需要增加数据库消息时,在主信息表中增加数据,写入新增加数据的消息主键、消息编号、维度数据、消息内容与读者域;
例如在表一中新增主键为00000011消息编号为11的新消息新消息内容 为“消息内容11”消息时间为“2013.02.02”,读者域为“USER-A,USER-B”。则更新后的主信息表如表五所示。
表五(主信息表2):
消息编号 | 消息主键 | 消息内容 | 消息时间 | 读者域 |
01 | 00000001 | 消息内容1 | 2012.12.01 | USER-A |
02 | 00000002 | 消息内容2 | 2013.01.12 | USER-A,USER-B |
03 | 00000003 | 消息内容3 | 2013.01.12 | USER-A,USER-C |
04 | 00000004 | 消息内容4 | 2013.01.12 | USER-A,USER-B,USER-C |
05 | 00000005 | 消息内容5 | 2013.01.12 | USER-A,USER-B,USER-C |
06 | 00000006 | 消息内容6 | 2013.01.12 | USER-A,USER-B,USER-C |
07 | 00000007 | 消息内容7 | 2013.01.12 | USER-B |
08 | 00000008 | 消息内容8 | 2013.01.12 | USER-A,USER-B |
09 | 00000009 | 消息内容9 | 2013.01.12 | USER-B,USER-C |
10 | 00000010 | 消息内容10 | 2013.01.12 | USER-C |
11 | 00000011 | 消息内容11 | 2013.02.02 | USER-A,USER-B |
S104判断主信息表中新增加数据的维度数据所在数据段是否已有索引表,若有,
进行S105A更新索引表,在对应的索引表中添加新增加数据的消息主键、消息编号、维度数据与读者域,若无,
进行S105B创建新的索引表,并在新的索引表中添加新增加数据的消息主键、消息编号、维度数据与读者域;
对应于表五所示实施例,新增消息的维度数据为2013.02.02,若预设的维度数据的数据段系按年份设置,也就是……2011年、2012年、2013年、2014年……各建立一张索引表,那么新增加数据所在的2013年的数据段已经存在有索引表,因此对表三进行更新,得到表六:
表六(时间索引表3):
消息编号 | 年份 | 消息主键 | 读者域 |
02 | 2013 | 00000002 | USER-A,USER-B |
03 | 2013 | 00000003 | USER-A,USER-C |
04 | 2013 | 00000004 | USER-A,USER-B,USER-C |
05 | 2013 | 00000005 | USER-A,USER-B,USER-C |
06 | 2013 | 00000006 | USER-A,USER-B,USER-C |
07 | 2013 | 00000007 | USER-B |
08 | 2013 | 00000008 | USER-A,USER-B |
09 | 2013 | 00000009 | USER-B,USER-C |
10 | 2013 | 00000010 | USER-C |
11 | 2013 | 00000011 | USER-A,USER-B |
若在另一实施例中,新增数据消息主键为00000011,消息编号为11的新消息,新消息内容为“消息内容11”消息时间为“2014.02.02”,读者域为“USER-A,USER-B”。
则更新后的主信息表如表六所示。
表七(主信息表3):
消息编号 | 消息主键 | 消息内容 | 消息时间 | 读者域 |
01 | 00000001 | 消息内容1 | 2012.12.01 | USER-A |
02 | 00000002 | 消息内容2 | 2013.01.12 | USER-A,USER-B |
03 | 00000003 | 消息内容3 | 2013.01.12 | USER-A,USER-C |
04 | 00000004 | 消息内容4 | 2013.01.12 | USER-A,USER-B,USER-C |
05 | 00000005 | 消息内容5 | 2013.01.12 | USER-A,USER-B,USER-C |
06 | 00000006 | 消息内容6 | 2013.01.12 | USER-A,USER-B,USER-C |
07 | 00000007 | 消息内容7 | 2013.01.12 | USER-B |
08 | 00000008 | 消息内容8 | 2013.01.12 | USER-A,USER-B |
09 | 00000009 | 消息内容9 | 2013.01.12 | USER-B,USER-C |
10 | 00000010 | 消息内容10 | 2013.01.12 | USER-C |
11 | 00000011 | 消息内容11 | 2014.02.02 | USER-A,USER-B |
那么根据上述实施例的维度数的数据段分段规则,不存在2014年相对应的 索引表,那么我们需要增加新的索引表,表八:
表八(时间索引表3):
消息编号 | 年份 | 消息主键 | 读者域 |
11 | 2014 | 00000011 | USER-A,USER-B |
S106更新统计表数据,将更新后的索引表的相关信息或新的索引表的相关信息更新到统计表中。
对应于表五与表六更新数据后的实施例,更新后的统计表,如表九:
表九(统计表2):
统计表编号 | 统计表主键 | 时间索引表 | 总数 | 消息最小编号 | 消息最大编号 | 读者域 |
01 | 00000001 | 2012 | 1 | 01 | 01 | USER-A |
02 | 00000002 | 2013 | 7 | 02 | 11 | USER-A |
03 | 00000003 | 2013 | 8 | 02 | 11 | USER-B |
04 | 00000004 | 2013 | 6 | 03 | 10 | USER-C |
对应于表七与表八更新数据后的实施例,更新后的统计表,如表十:
表十(统计表3):
统计表编号 | 统计表主键 | 时间索引表 | 总数 | 消息最小编号 | 消息最大编号 | 读者域 |
01 | 00000001 | 2012 | 1 | 01 | 01 | USER-A |
02 | 00000002 | 2013 | 6 | 02 | 08 | USER-A |
03 | 00000003 | 2013 | 7 | 02 | 09 | USER-B |
04 | 00000004 | 2013 | 6 | 03 | 10 | USER-C |
05 | 00000005 | 2014 | 1 | 11 | 11 | USER-A |
06 | 00000006 | 2014 | 1 | 11 | 11 | USER-B |
在某些实施例中,统计表可以不记载消息最小编号与消息最大编号,而只记载消息总数,对于这些不同实施例的分页查询方法,在下列实施例中会分别说明。
下列实施例提供了数据分页查询的方法,包括以下步骤:
S201接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排 序进行分页查询,如表一、表五或表七所示的主消息表1~3,所述主信息表记录有:消息主键、消息编号、维度数据,读者域与消息内容,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,被请求查询的页面的消息条数以及查询的用户所属的读者域;
被请求查询的页面的起始消息序号的相关信息系指可以确定被请求查询的页面的起始消息序号(也就是被请求查询的页面的起始第一条消息的序号)的相关信息,例如可以直接是该页第一条消息的消息序号,也可以是该页之前消息数量的总和,可以由此推断下一条消息的序号。
举例说明,在某实施例中,属于读者域A的某用户登录,请求查询分页第4页的消息,例如每个分页所显示的消息数量都为10条,那么被请求查询的页面的消息序号即为31至40,起始消息序号为31。当然在某些实施例中,每个分页所显示的消息数量可能不恒定,例如在某实施例中请求查询分页第4页的消息,第1、2、3页的消息数量分别为10条、8条与6条,第4页消息数量为10条,那么被请求查询的页面的消息序号即为25至34,起始消息序号为25。
同时,分页查询请求中的消息还包括被请求查询的页面的消息条数。
例如,某实施例中,请求查询表一中的消息,且请求查询分页第2页的消息,若每个分页显示的消息条数为3条,那么被请求查询的页面的起始消息序号为4,被请求查询的页面的消息序号即为4至6。
S202根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,以及查询的用户所属的读者域查询统计表,得到与被请求查询的页面相关的索引表,所述索引表记录有消息主键、消息编号、维度数据与读者域,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及每张索引表中按读者域对应的消息总数以及消息最小、最大编号;
在某实施例中,USER-A登录,点击查看信息列表第2页(每一页4条消息),记录页数和读者读者域,在数据库的统计表表四中查找USER-A的统计表信息,得到如下结果:
表十一(USER-A的统计表信息)
统计表主键 | 时间索引表 | 总数 | 消息最小编号 | 消息最大编号 | 读者域 |
00000001 | 2012 | 1 | 01 | 01 | USER-A |
00000002 | 2013 | 6 | 02 | 08 | USER-A |
由步骤S201我们知道被请求查询的页面的起始消息序号为4,被请求查询的页面的消息序号为4~6,结合表十一,可知时间索引表2012中USER-A相关消息总数为1,对应USER-A的消息序号为1,索引表2013中USER-A相关消息总数为6,对应USER-A的消息序号为2~7,因此所要查询的的消息位于时间索引表2013中。
S203根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键,具体得到的结果参见表十二。
表十二(检索获得的消息主键列表1):
消息编号 | 年份 | 消息主键 | 读者域 |
04 | 2013 | 00000004 | USER-A,USER-B,USER-C |
05 | 2013 | 00000005 | USER-A,USER-B,USER-C |
06 | 2013 | 00000006 | USER-A,USER-B,USER-C |
该实施例中,统计表记载有读者域对应的消息最小编号与消息最大编号,这可以使得对检索表的检索更加快捷。例如根据表四得到的表十一中,我们知道索引表2013中的读者域USER-A对应的消息最小、最大编号分别为02、08,因此在步骤S203中,我们只要查找消息最小、最大编号所对应的消息编号的号段02~08即可,而无需对整张索引表2013进行查找,加快了检索时间,节约了系统资源。
在某些实施例中,统计表也可以不记载读者域对应的消息最小编号与消息最大编号,遍历与被请求查询的页面相关的索引表,获得被请求查询的页面所包含的消息的消息主键,这也是可以的。
如果分页第一页的消息条数是3,第二页的消息条数是4,那么检索得到的结果参见表十三:
表十三(检索获得的消息主键列表2):
消息编号 | 年份 | 消息主键 | 读者域 |
04 | 2013 | 00000004 | USER-A,USER-B,USER-C |
05 | 2013 | 00000005 | USER-A,USER-B,USER-C |
06 | 2013 | 00000006 | USER-A,USER-B,USER-C |
08 | 2013 | 00000008 | USER-A,USER-B |
S204根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。表十二所对应的获取到的主信息表的内容如表十四:
表十四(获得的主信息表内容)
消息编号 | 消息主键 | 消息内容 | 消息时间 | 读者域 |
04 | 00000004 | 消息内容4 | 2013.01.12 | USER-A |
05 | 00000005 | 消息内容5 | 2013.01.12 | USER-A |
06 | 00000006 | 消息内容6 | 2013.01.12 | USER-A |
S205:将主信息表中获得的信息内容在信息分页列表前端展示。
某些实施例中,若不区分查询者权限,可以在索引表与统计表中不记录读者域。
本发明还提供了一种数据分页查询的装置的实施例,包括以下模块:
显示模块403,用于显示分页查询的结果;
接收模块404,用于接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,被请求查询的页面的消息条数以及查询的用户所属的读者域;
存储模块402,用于存储主信息表、索引表与统计表,所述主信息表记录有:消息主键、消息编号、维度数据、读者域与消息内容,所述索引表记录有消息主键、消息编号、读者域与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及每张索引表中按读者域对应的消息总数;
查询模块401,读取存储模块402中的存储信息,并将查询结果传输至显示模块403,并用于根据查询的用户所属的读者域、被请求查询的页面的起始消息 序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键,根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
某些实施例中,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号;
所属查询模块401还用于,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、最大编号,查找索引表中相应消息编号的号段。
某些实施例中,该装置包括以下模块:
主信息表创建模块405,用于在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容;
索引表创建模块406,用于创建索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中;
统计表创建模块407,用于创建统计表,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种数据分页查询的方法,包括以下步骤:
接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,以及被请求查询的页面的消息条数;
根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数;
根据被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键;
根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
2.根据权利要求1所述的数据分页查询的方法,其特征在于:
所述主信息表记录有读者域,所述分页查询请求中的信息包括:查询的用户所属的读者域;
查询统计表时,根据被请求查询的页面的起始消息序号、被请求查询的页面的消息条数以及查询的用户所属的读者域查询统计表,所述索引表记录有消息主键、消息编号、维度数据与读者域,所述统计表记录有统计表主键、读者域、索引表标识信息及每张索引表中按读者域对应的消息总数;
根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键。
3.根据权利要求2所述的数据分页查询的方法,其特征在于:所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号;
在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、最大编号,查找索引表中相应消息编号的号段。
4.一种数据分页查询的装置,包括以下模块:
显示模块,用于显示分页查询的结果;
接收模块,用于接收分页查询请求,所述分页查询请求系按主信息表中维度数据的排序进行分页查询,分页查询请求中的信息包括:被请求查询的页面的起始消息序号的相关信息,被请求查询的页面的消息条数以及查询的用户所属的读者域;
存储模块,用于存储主信息表、索引表与统计表,所述主信息表记录有:消息主键、消息编号、维度数据、读者域与消息内容,所述索引表记录有消息主键、消息编号、读者域与维度数据,主信息表中的消息主键按维度数据的数据段划分在2张以上的索引表中,所述统计表记录有统计表主键、索引表标识信息及每张索引表中按读者域对应的消息总数;
查询模块,读取存储模块中的存储信息,并将查询结果传输至显示模块,并用于根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,查询统计表,得到与被请求查询的页面相关的索引表,根据查询的用户所属的读者域、被请求查询的页面的起始消息序号以及被请求查询的页面的消息条数,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键,根据获得的被请求查询的页面所包含的消息的消息主键,在主信息表中获取相应的消息内容。
5.根据权利要求4所述的数据分页查询的装置,其特征在于,所述统计表记录有每张索引表中按读者域对应的消息最小、最大编号;
所属查询模块还用于,在与被请求查询的页面相关的索引表中获得被请求查询的页面所包含的消息的消息主键时,根据统计表中记录的每张索引表中按读者域对应的消息最小、最大编号,查找索引表中相应消息编号的号段。
6.根据权利要求4所述的数据分页查询的装置,其特征在于,包括以下模块:
主信息表创建模块,用于在数据库中创建主信息表,所述主信息表记录有:消息主键、消息编号、维度数据与消息内容;
索引表创建模块,用于创建索引表,所述索引表记录有消息主键、消息编号与维度数据,主信息表中的消息主键按预设的维度数据的数据段分布在相应的索引表中;
统计表创建模块,用于创建统计表,所述统计表记录有统计表主键、索引表标识信息及索引表对应的消息总数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310486341.XA CN103530378B (zh) | 2013-10-15 | 2013-10-15 | 数据分页查询与数据库的构建的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310486341.XA CN103530378B (zh) | 2013-10-15 | 2013-10-15 | 数据分页查询与数据库的构建的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103530378A CN103530378A (zh) | 2014-01-22 |
CN103530378B true CN103530378B (zh) | 2017-01-18 |
Family
ID=49932387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310486341.XA Active CN103530378B (zh) | 2013-10-15 | 2013-10-15 | 数据分页查询与数据库的构建的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530378B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886022B (zh) * | 2014-02-24 | 2019-01-18 | 上海上讯信息技术股份有限公司 | 一种基于主键字段进行分页查询的查询设备及其方法 |
CN105653537B (zh) * | 2014-11-13 | 2020-04-17 | 阿里巴巴集团控股有限公司 | 一种数据库应用系统的分页查询方法和装置 |
CN104657513B (zh) * | 2015-03-20 | 2018-02-09 | 山东威尔数据股份有限公司 | 嵌入式系统中档案操作与快速检索方法 |
CN106776598B (zh) * | 2015-11-19 | 2019-12-13 | 中国移动通信集团公司 | 一种信息处理方法及装置 |
CN105653611B (zh) * | 2015-12-24 | 2019-08-20 | 深圳市汇朗科技有限公司 | 分表分页排序查询方法及装置 |
CN105808661B (zh) * | 2016-02-29 | 2019-03-08 | 浪潮天元通信信息系统有限公司 | 一种数据查询的方法及装置 |
CN107193822A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 用于分页查询的方法、装置及设备 |
CN106250416B (zh) * | 2016-07-22 | 2020-08-21 | 努比亚技术有限公司 | 一种处理分页数据的方法、装置和服务器 |
CN106227894B (zh) * | 2016-08-24 | 2019-11-26 | 中国农业银行股份有限公司 | 一种数据分页查询方法和装置 |
CN106649435A (zh) * | 2016-09-07 | 2017-05-10 | 努比亚技术有限公司 | 数据查询装置及方法 |
CN106446080B (zh) * | 2016-09-09 | 2021-08-13 | 华为技术有限公司 | 数据查询的方法、查询服务设备、客户端设备和数据系统 |
CN107977378B (zh) * | 2016-10-25 | 2021-11-02 | 南京途牛科技有限公司 | 一种分布式数据聚合方法和装置 |
CN107707346A (zh) * | 2017-04-10 | 2018-02-16 | 浙江九州量子信息技术股份有限公司 | 一种基于数据库的密钥存储、获取方法 |
CN109286642A (zh) * | 2017-07-20 | 2019-01-29 | 武汉楚鼎信息技术有限公司 | 一种Push主动推送速度优化的方法 |
CN107463677B (zh) * | 2017-08-04 | 2020-12-11 | 网易(杭州)网络有限公司 | 图表绘制方法、系统、介质和计算设备 |
CN107391749B (zh) * | 2017-08-15 | 2020-07-31 | 杭州安恒信息技术股份有限公司 | 一种查询分表数据实现瀑布流的方法 |
CN109241050B (zh) * | 2018-07-10 | 2021-08-27 | 创新先进技术有限公司 | 一种数据查询方法、装置及系统、电子设备 |
CN109063201B (zh) * | 2018-09-11 | 2022-02-11 | 武汉魅瞳科技有限公司 | 一种基于混合存储方案的impala在线交互式查询方法 |
CN113407574B (zh) * | 2021-07-20 | 2024-04-26 | 广州博冠信息科技有限公司 | 多表分页查询方法、装置、设备及存储介质 |
CN117425887A (zh) * | 2022-05-18 | 2024-01-19 | 京东方科技集团股份有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533406A (zh) * | 2009-04-10 | 2009-09-16 | 北京锐安科技有限公司 | 一种海量数据查询方法 |
CN103092631A (zh) * | 2007-04-06 | 2013-05-08 | 西安万年科技实业有限公司 | 一种数据库应用系统开发平台及开发方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3870043B2 (ja) * | 2001-07-05 | 2007-01-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 大規模データベースにおける主要クラスタおよびアウトライア・クラスタの検索、検出および同定のためのシステム、コンピュータ・プログラム、およびサーバ |
-
2013
- 2013-10-15 CN CN201310486341.XA patent/CN103530378B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092631A (zh) * | 2007-04-06 | 2013-05-08 | 西安万年科技实业有限公司 | 一种数据库应用系统开发平台及开发方法 |
CN101533406A (zh) * | 2009-04-10 | 2009-09-16 | 北京锐安科技有限公司 | 一种海量数据查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103530378A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103530378B (zh) | 数据分页查询与数据库的构建的方法与装置 | |
CN102541529B (zh) | 一种查询页面生成装置和方法 | |
CN100478962C (zh) | 搜索网页的方法、装置及系统和建立索引数据库的装置 | |
US20080114733A1 (en) | User-structured data table indexing | |
CN101916294B (zh) | 一种利用语义分析实现精确搜索的方法 | |
CN106326429A (zh) | 一种基于solr的Hbase秒级查询方案 | |
CN102799634A (zh) | 数据存储方法及装置 | |
CN101446962A (zh) | 一种数据转换方法、装置及数据处理系统 | |
CN102722537A (zh) | 一种数据库测试数据的生成方法及系统 | |
CN103778137B (zh) | 一种博客内容搜索方法及系统 | |
CN102081666B (zh) | 用于分布式图片搜索的索引构建方法和装置 | |
CN106649363A (zh) | 数据查询方法及装置 | |
CN110457346A (zh) | 数据查询方法、装置及计算机可读存储介质 | |
US20110022629A1 (en) | Data access | |
CN113434901A (zh) | 数据智能查询方法、装置、电子设备及存储介质 | |
CN105095436A (zh) | 数据源数据自动建模方法 | |
CN110162540B (zh) | 区块链账本数据的查询方法、电子装置及存储介质 | |
CN109388729A (zh) | 音频子指纹的检索方法、装置以及音频查询系统 | |
CN114022188A (zh) | 目标人群圈选方法、装置、设备以及存储介质 | |
CN104536957A (zh) | 农用土地流转信息检索方法和系统 | |
CN101384050A (zh) | 一种移动终端及其资源管理的方法及系统 | |
CN116628018A (zh) | 一种数据查询方法、装置、服务器及存储介质 | |
CN101344892A (zh) | 信息处理设备、信息处理方法及计算机可读信息记录介质 | |
CN116228374A (zh) | 物流行业市场单量数据预警方法、装置、设备及存储介质 | |
CN104636384B (zh) | 一种处理文档的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |