CN103440317A - 基于数据库时间标签的增量数据查询方法 - Google Patents
基于数据库时间标签的增量数据查询方法 Download PDFInfo
- Publication number
- CN103440317A CN103440317A CN2013103814933A CN201310381493A CN103440317A CN 103440317 A CN103440317 A CN 103440317A CN 2013103814933 A CN2013103814933 A CN 2013103814933A CN 201310381493 A CN201310381493 A CN 201310381493A CN 103440317 A CN103440317 A CN 103440317A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- label
- database
- request
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据库时间标签的增量数据查询方法,其采用时间标签的方式分别对数据库数据和客户端请求进行标注,数据库数据携带的时间标签,记录数据的更新时间,即更新时间标签;客户端请求中携带的时间标签是用户上一次请求数据的响应时间,即响应时间标签,服务器通过比较数据库信息的更新时间标签和请求中的响应时间标签实现增量数据反馈。本发明的方法可以适用于数据更新相对不频繁,但单次更新数据量巨大的客户服务器网络环境,通过增加时间标签,实现数据库增量数据查询,能够在保证满足用户请求的同时减少服务器的数据处理开销和通信开销,极大地改善服务器的性能。
Description
技术领域
本发明属于网络通信技术领域,具体涉及一种基于数据库时间标签的增量数据查询方法的设计。
背景技术
大多数应用软件系统都是基于客户端/服务器这种网络环境开发的,在这种结构中,客户端可以通过向服务器发送请求来索取需求数据。通常情况下,客户端每发送一次请求命令,服务器都会根据客户端的需求查询数据库获得所有相关数据并返回给客户端。对于更新频繁的大数据库系统来说,采用前面所述服务器接收请求即进行查询的机制是合理甚至必须的;但是对于更新相对不频繁,并且单次更新数据量很大的数据系统来说,这种查询机制就会存在一定弊端。
首先,由于数据更新相对不频繁,在多数情况下用户每次查询得到的最终结果实际都是相同的,但却需要服务器的进行大量重复性的工作。
其次,假设某客户端经常甚至连续不断的一直发送请求命令的话,服务器就需要一直处理用户请求,查询数据库的相关数据,返回响应,会对服务器造成很大的压力,占用服务器额外资源,影响其工作效率和性能,甚至造成其崩溃。
发明内容
本发明所要解决的技术问题是针对现有技术中客户端与服务器间查询机制存在的问题导致服务器的工作效率和性能较低的缺陷而提出了一种基于数据库时间标签的增量数据查询方法。
本发明解决其技术问题采用的技术方案是:基于数据库时间标签的增量数据查询方法,具体包括:
步骤1、服务器端采用更新时间标签对数据库中的数据进行更新时间记录,所述更新时间标签随数据库中的数据变化而更新;同时服务器端采用响应时间标签对客户端向服务器端请求数据的响应时间进行标记;
步骤2、客户端向所述服务器端发送数据请求报文,若所述客户端为第一次发送数据请求报文,则直接发送请求信息;否则,需要携带上一次所述服务器端对客户端回复的数据请求的响应时间标签;
步骤3、服务器端接收数据请求包,提取所述数据请求包中携带的上一次请求数据时所述服务器端回复的响应报文中携带的响应时间标签,将所述响应时间标签与需求数据的更新时间标签进行比较,并回复响应报文至所述客户端;
步骤4、客户端收到所述服务器端回复的响应报文后,分析响应报文中包含的数据,利用本地缓存数据与返回的数据信息构造最终的需求结果。
进一步的,所述步骤1中,所述更新时间标签根据不同的系统性能和功能要求有不同的粒度模式,所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据库、数据表、数据记录或者正则表达式。
更进一步的,所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据表时,所述数据库单独维护一个更新时间记录表,所述更新时间记录表至少包含两个字段:数据表ID和表的更新时间标签;
当数据库中某个数据表发生变化候,所述更新时间记录表需要记录这个表的ID和更新时间标签,当所述客户端发送数据请求时,先查询所述更新时间记录表,若发现所需数据发生了更新,再去查询具体数据表中更新的新数据。
进一步的,所述步骤3中对所述响应时间标签与需求数据的更新时间标签进行比较的具体过程为:若数据更新时间标签晚于请求包中携带的响应时间标签,则需要重新查询数据库,提取需求数据返回给客户端;
若数据的更新时间标签早于数据请求中的响应时间标签,则不需要在重新查询数据库获得该数据,直接采用标记机制告知客户端此数据在上次请求之后没有更新变化,直接利用上次的数据信息。
更进一步的,所述步骤3中选择离当下最近的更时间标签作为用于比较的更新时间标签对响应报文作标记。
本发明的有益效果:本发明基于数据库时间标签的增量数据查询方法通过采用时间标签的方式分别对数据库数据和客户端请求进行标注,数据库数据对应的时间标签,记录数据的最近更新时间,即更新时间标签;客户端请求中携带的时间标签是用户上一次请求数据的响应包标志时间,即响应标记时间标签;服务器通过比较数据库信息的更新时间标签和请求中的响应标记时间标签实现增量数据反馈,本发明可以适用于数据更新相对不频繁的客户服务器网络环境,通过增加时间标签,实现数据库增量数据查询,能够在保证满足用户请求的同时减少服务器的数据处理开销和通信开销,极大地改善服务器的性能,节省资源,同时在灵活性和可扩展性方面有很大的改进。
附图说明
图1为本发明实施例的基于数据库时间标签的增量数据查询方法的流程框图;
图2为本发明实施例的基于数据库时间标签的增量数据查询方法中更新记录表的结构示意图;
图3为本发明实施例的基于数据库时间标签的增量数据查询方法中教授信息表、副教授信息表和博士信息表的结构示意图;
图4为本发明实施例的基于数据库时间标签的增量数据查询方法中发生变化之前和之后的更新记录表。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的阐述。
如图1所示为本发明实施例基于数据库时间标签的增量数据查询方法的流程框图,其具体包括如下步骤:
步骤1、服务器端采用更新时间标签对数据库中的数据进行更新时间记录,所述更新时间标签随数据库中的数据变化而更新;同时服务器端采用响应时间标签对客户端向服务器端请求数据的响应时间进行标记;
所述更新时间标签根据不同的系统性能和功能要求有不同的粒度模式,所述粒度模式对应为数据库中数据的更新时间标签的标记可以细化到数据库、数据表、数据记录或者正则表达式等。
当所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据表时,所述数据库单独维护一个更新时间记录表,所述更新时间记录表至少包含两个字段:数据表ID和表的更新时间标签;当数据库中某个数据表发生变化候,所述更新时间记录表需要记录这个表的ID和更新时间标签,当所述客户端发送数据请求时,先查询所述更新时间记录表,若发现所需数据发生了更新,再去查询具体数据表中更新的新数据。下面在具体实施例中将详细介绍所述粒度模式细化到数据表时,客户端向服务器端查询数据增量的详细过程。
步骤2、客户端向所述服务器端发送数据请求报文,若所述客户端为第一次发送数据请求报文,则直接发送请求信息;否则,需要携带上一次所述服务器端对客户端回复的数据请求的响应时间标签;
当客户端向服务器端发送了数据请求报文之后,所述服务器端会根据客户端的数据请求回复对应的响应报文,响应报文中除了请求的数据信息还包括响应时间标签,所述响应时间标签用于标记此次服务器端的响应时间或者是记录请求数据的最近更新时间,这个标志信息需要在客户端做缓存,当客户端下次再发送相同的请求时需要在请求中携带上这个响应时间标签。
步骤3、服务器端接收数据请求包,提取所述数据请求包中携带的上一次请求数据时所述服务器端回复的响应报文中携带的响应时间标签,将所述响应时间标签与需求数据的更新时间标签进行比较,并回复响应报文至所述客户端;
其中,所述响应时间标签与需求数据的更新时间标签进行比较的具体过程为:若数据更新时间标签晚于请求包中携带的响应时间标签,则需要重新查询数据库,提取需求数据返回给客户端;若数据的更新时间标签早于数据请求中的响应时间标签,则不需要在重新查询数据库获得该数据,直接采用标记机制告知客户端此数据在上次请求之后没有更新变化,直接利用上次的数据信息。并且在所述步骤3中应当选择离当下最近的更时间标签作为用于比较的更新时间标签对响应报文作标记,例如,假设客户端向服务器端发送数据请求中要求获得A、B两个数据信息,而A的更新时间标签是2013-02-02,B的更新时间标签是2013-02-03,那两个时间标签对比得知,B的更新时间标签更接近于当下,那我们就选择B的更新时间标签作为整个响应报文的响应时间标签。
步骤4、客户端收到所述服务器端回复的响应报文后,分析响应报文中包含的数据,利用本地缓存数据与返回的数据信息构造最终的需求结果。
其中,利用本地缓存数据与返回的数据信息构造最终的需求结果不属于本发明申请方案重点讨论内容,具体手段可以按照相关规则利用现有技术领域中的公知常识进行需求结构的构造。
本发明通过采用时间标签方式分别对数据库数据和客户端请求进行标注,数据库数据携带的更新时间标签记录数据的更新时间;客户端请求中携带的响应时间标签是用户上一次请求数据的响应时间,服务器端通过比较数据库信息的更新时间标签和请求中的响应时间标签实现增量数据反馈,本发明的方法可以适用于数据更新相对不频繁,但单次更新数据量巨大的客户服务器网络环境,通过增加时间标签,实现数据库增量数据查询,能够在保证满足用户请求的同时减少服务器的数据处理开销和通信开销,极大地改善服务器的性能。
为了本领域技术人员能够理解并且实施本发明技术方案,下面将结合具体的实施例作进一步阐述:其中,所述服务器端的更新时间标签的粒度模式具体细化到数据库中的数据表,数据库中单独维护着一个更新记录表,用来记录每个数据表的更新时间,所述更新记录表的结构如图2所示,其主要包含两个字段:数据表ID和数据表的更新时间标签,当某数据表中有数据发生更新包括增、删、改等变化时,更新记录表中此表的表ID对应的更新时间标签就会随之发生更新;当然,如果所述服务器端的更新时间标签的粒度模式具体细化到其他事项时,对应的更新记录表也可以为其他格式。
当客户端向所述服务器端发送数据请求报文时,请求包中携带上次数据请求的响应时间标签,当服务器端接收请求包,提取包中携带的上次请求的响应时间标签,然后根据需求查询更新记录表中用户需求的数据表ID对应的更新时间标签,将响应时间标签与更新时间标签两者进行比较,实现增量数据反馈,具体为:若数据表对应的更新时间标签晚于请求包中携带的响应标记时间标签,则需要重新查询数据表提取此表中的需求数据;若更新时间标签早于请求中的时间标签,则不需要再对该数据表进行查询操作,直接在响应包的包头做标记说明即可,告诉客户端此表中的数据未发生更新,与上次的结果保持一致。此外,选择需求数据的数据表ID对应的更新时间标签中离当下时间最近的更新时间标签对响应包标记响应时间标签。
下面通过一个具体实例来进行说明:
已知数据库中存在三个表:教授信息表、副教授信息表和博士信息表,所述表结构如图3所示,其中,教授表中包含教授编号、姓名、研究方向三个字段,副教授信息表中包含副教授编号、姓名和研究方向三个字段,博士信息表中包含博士编号、姓名和研究方向三个字段。所述教授信息表、副教授信息表和博士信息表表之间存在一定的关联:当某副教授升职为教授的时候会同时导致教授表和副教授表信息的更新变化。
假设:教授信息表、副教授信息表和博士信息表的表ID分别为1,2,3;某人甲在2013.6.20日发送请求查询了本学院的所有教授信息和所有博士,某人乙在同一天2013.6.20查询了本学院所有副教授的信息,2013.7.1日学院M副教授正是升职为教授,则若甲乙两人在2013.7.15日再一次分别查询本学院教授信息和副教授信息,整个请求、响应流程的展开过程如下步骤:
步骤A、针对三个表进行更新时间标签标记,更新记录表结构如图2所示,本例的数据库中,2013-07-01日之前和之后的更新记录表如图4所示,可见表1、2的时间标签都发生了变化。
步骤B、2013-07-15日甲和乙再一次相同的发送请求命令,假设甲乙请求包中携带的上次请求时间标签都是2013-06-20。
步骤C、服务器收到请求包,提取甲请求包的时间标签,与更新记录表中的表ID=1的更新时间标签比较,发现教授表信息在上次请求之后发生了更新,则需要重新查询教授信息表并提取数据信息,而表ID=3对应的更新时间早于上次请求时间2013-06-20,说明博士表信息没有发生过变化,所以无需再对该表进行查询操作,构造对甲的响应包并携带新的时间标签2013-07-01返回甲客户端。对于乙请求包来说,服务器将时间标签2013-6-20与副教授信息表的更新时间标签进行比较,发现2013-6-20之后,副教授信息表发生了更新变化,所以需要再一次查询此数据表,获得数据返回给客户端乙,时间标签也选择2013-07-01。
步骤D、甲、乙客户端收到响应之后,都用2013-07-01标签更新替换2013-06-20,缓存在本地,然后根据规则构造响应结果即可。
Claims (5)
1.基于数据库时间标签的增量数据查询方法,其特征在于,具体包括:
步骤1、服务器端采用更新时间标签对数据库中的数据进行更新时间记录,所述更新时间标签随数据库中的数据变化而更新;同时服务器端采用响应时间标签对客户端向服务器端请求数据的响应时间进行标记;
步骤2、客户端向所述服务器端发送数据请求报文,若所述客户端为第一次发送数据请求报文,则直接发送请求信息;否则,需要携带上一次所述服务器端对客户端回复的数据请求的响应时间标签;
步骤3、服务器端接收数据请求包,提取所述数据请求包中携带的上一次请求数据时所述服务器端回复的响应报文中携带的响应时间标签,将所述响应时间标签与需求数据的更新时间标签进行比较,并回复响应报文至所述客户端;
步骤4、客户端收到所述服务器端回复的响应报文后,分析响应报文中包含的数据,利用本地缓存数据与返回的数据信息构造最终的需求结果。
2.如权利要求1所述的基于数据库时间标签的增量数据查询方法,其特征在于,所述步骤1中,所述更新时间标签有不同的粒度模式,所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据库、数据表、数据记录或者正则表达式。
3.如权利要求2所述的基于数据库时间标签的增量数据查询方法,其特征在于,所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据表时,所述数据库单独维护一个更新时间记录表,所述更新时间记录表至少包含两个字段:数据表ID和表的更新时间标签;
当数据库中某个数据表发生变化候,所述更新时间记录表需要记录这个表的ID和更新时间标签,当所述客户端发送数据请求时,先查询所述更新时间记录表,若发现所需数据发生了更新,再去查询具体数据表中更新的新数据。
4.如权利要求1至3任一项权利要求所述的基于数据库时间标签的增量数据查询方法,其特征在于,所述步骤3中对所述响应时间标签与需求数据的更新时间标签进行比较的具体过程为:若数据更新时间标签晚于请求包中携带的响应时间标签,则需要重新查询数据库,提取需求数据返回给客户端;
若数据的更新时间标签早于数据请求中的响应时间标签,则不需要在重新查询数据库获得该数据,直接采用标记机制告知客户端此数据在上次请求之后没有更新变化,直接利用上次的数据信息。
5.如权利要求1至3任一项权利要求所述的基于数据库时间标签的增量数据查询方法,其特征在于,所述步骤3中选择离当下最近的更时间标签作为用于比较的更新时间标签对响应报文作标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103814933A CN103440317A (zh) | 2013-08-28 | 2013-08-28 | 基于数据库时间标签的增量数据查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103814933A CN103440317A (zh) | 2013-08-28 | 2013-08-28 | 基于数据库时间标签的增量数据查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103440317A true CN103440317A (zh) | 2013-12-11 |
Family
ID=49694010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103814933A Pending CN103440317A (zh) | 2013-08-28 | 2013-08-28 | 基于数据库时间标签的增量数据查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103440317A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468623A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置 |
CN106550019A (zh) * | 2016-10-20 | 2017-03-29 | 福建天泉教育科技有限公司 | 浏览器请求处理方法及系统 |
CN106776764A (zh) * | 2016-11-18 | 2017-05-31 | 广东欧珀移动通信有限公司 | 歌曲数据的存储方法及终端 |
WO2018027489A1 (zh) * | 2016-08-08 | 2018-02-15 | 吕秋萍 | 文本路径打开文件位置的方法以及文件系统 |
WO2018027490A1 (zh) * | 2016-08-08 | 2018-02-15 | 吕秋萍 | 文件打开技术的数据采集方法以及文件系统 |
CN107741994A (zh) * | 2017-11-09 | 2018-02-27 | 校脸科技(北京)有限公司 | 一种数据更新方法及装置 |
CN108108400A (zh) * | 2017-12-05 | 2018-06-01 | 厦门哨子科技有限公司 | 一种api基于本地数据增量的方法 |
CN110083579A (zh) * | 2019-03-21 | 2019-08-02 | 深圳壹账通智能科技有限公司 | 增量数据同步的方法、装置、计算机设备及计算机存储介质 |
CN110413684A (zh) * | 2018-04-25 | 2019-11-05 | 武汉海康存储技术有限公司 | 一种数据库同步方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508854A (zh) * | 2011-09-29 | 2012-06-20 | 畅捷通信息技术股份有限公司 | 数据访问装置和方法 |
CN102915336A (zh) * | 2012-09-18 | 2013-02-06 | 北京金和软件股份有限公司 | 一种基于时间戳和日志的增量数据捕获和抽取方法 |
CN103209215A (zh) * | 2013-04-16 | 2013-07-17 | 上海爱数软件有限公司 | 一种系统管理数据的分布式缓存方法及文件管理系统 |
-
2013
- 2013-08-28 CN CN2013103814933A patent/CN103440317A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508854A (zh) * | 2011-09-29 | 2012-06-20 | 畅捷通信息技术股份有限公司 | 数据访问装置和方法 |
CN102915336A (zh) * | 2012-09-18 | 2013-02-06 | 北京金和软件股份有限公司 | 一种基于时间戳和日志的增量数据捕获和抽取方法 |
CN103209215A (zh) * | 2013-04-16 | 2013-07-17 | 上海爱数软件有限公司 | 一种系统管理数据的分布式缓存方法及文件管理系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468623A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置 |
WO2018027489A1 (zh) * | 2016-08-08 | 2018-02-15 | 吕秋萍 | 文本路径打开文件位置的方法以及文件系统 |
WO2018027490A1 (zh) * | 2016-08-08 | 2018-02-15 | 吕秋萍 | 文件打开技术的数据采集方法以及文件系统 |
CN106550019A (zh) * | 2016-10-20 | 2017-03-29 | 福建天泉教育科技有限公司 | 浏览器请求处理方法及系统 |
CN106776764A (zh) * | 2016-11-18 | 2017-05-31 | 广东欧珀移动通信有限公司 | 歌曲数据的存储方法及终端 |
CN106776764B (zh) * | 2016-11-18 | 2019-10-18 | Oppo广东移动通信有限公司 | 歌曲数据的存储方法及终端 |
CN107741994A (zh) * | 2017-11-09 | 2018-02-27 | 校脸科技(北京)有限公司 | 一种数据更新方法及装置 |
CN107741994B (zh) * | 2017-11-09 | 2021-09-07 | 校脸科技(北京)有限公司 | 一种数据更新方法及装置 |
CN108108400A (zh) * | 2017-12-05 | 2018-06-01 | 厦门哨子科技有限公司 | 一种api基于本地数据增量的方法 |
CN110413684A (zh) * | 2018-04-25 | 2019-11-05 | 武汉海康存储技术有限公司 | 一种数据库同步方法、装置及系统 |
CN110413684B (zh) * | 2018-04-25 | 2023-05-02 | 杭州海康存储科技有限公司 | 一种数据库同步方法、装置及系统 |
CN110083579A (zh) * | 2019-03-21 | 2019-08-02 | 深圳壹账通智能科技有限公司 | 增量数据同步的方法、装置、计算机设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440317A (zh) | 基于数据库时间标签的增量数据查询方法 | |
CN102780724B (zh) | 一种类目信息的发送方法、系统及设备 | |
CN101770479B (zh) | 一种关联关系的查询方法及装置 | |
CN101876983B (zh) | 数据库分区方法与系统 | |
CA2769773C (en) | System and method for data communication over a network | |
CN101098248B (zh) | 一种基于配置描述文件实现通用网络管理的方法及系统 | |
CN102291416A (zh) | 一种客户端与服务器端双向同步的方法及系统 | |
CN103699638A (zh) | 一种基于配置参数实现跨数据库类型同步数据的方法 | |
CN101667179A (zh) | 移动搜索方法及其系统、搜索服务器同步搜索能力的方法 | |
CN102130959A (zh) | 一种实现云存储资源调度的系统及方法 | |
CN103761102B (zh) | 一种统一数据服务平台及其实现方法 | |
CN102521252A (zh) | 一种远程数据的访问方法 | |
CN103383687A (zh) | 一种页面处理方法和装置 | |
CN105787091A (zh) | 支持多终端的内容发布系统及方法 | |
CN102523299A (zh) | 基于消息摘要进行内容标识的缓存方法 | |
CN1968281A (zh) | 实现终端间单词库数据同步的方法及终端 | |
CN111797119B (zh) | 一种缓存装置、系统及缓存方法 | |
CN100571172C (zh) | 电信管理网中一种多厂商告警管理系统及其告警方法 | |
CN112416934A (zh) | hive表增量数据同步方法、装置、计算机设备及存储介质 | |
CN104702508A (zh) | 表项动态更新方法及系统 | |
CN102760137A (zh) | 分布式全文检索方法以及系统 | |
CN107273047B (zh) | 一种缓存管理方法、缓存管理器及存储管理软件 | |
CN103559264B (zh) | 一种微件数据及时更新的方法和装置 | |
CN109634976A (zh) | 非关系型数据库的运维方法、装置、系统及可读存储介质 | |
CN2929830Y (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131211 |
|
RJ01 | Rejection of invention patent application after publication |