数据更新的方法及装置的制造方法

文档序号:8430771阅读:180来源:国知局
数据更新的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及数据库技术领域,特别涉及一种数据更新的方法及装置。
【背景技术】
[0002] 随着信息时代的到来,信息无处不在,对于信息的更新也无处不在,例如,用户的 心情短语更新、用户的积分变更、用户的位置信息变更等。信息更新后数据库中的信息同步 成为海量信息处理的基础操作。由于,数据是构成信息的基本单位,因此,数据同步的方法 直接影响信息同步的效率和准确率。
[0003] 现有技术在数据同步时,数据D1每更新一次,均需要访问数据库进行数据库同 步,因此,对于更新频繁的应用场景,会频繁访问数据库,并给数据库造成比较严重的文件 碎片,随着时间的增长,该文件碎片会使数据库性能下降。

【发明内容】

[0004] 为了解决现有技术的问题,本发明实施例提供了一种数据更新的方法及装置。所 述技术方案如下:
[0005] -方面,提供了一种数据更新的方法,所述方法包括:
[0006] 获取数据更新请求,所述数据更新请求中携带有待更新的第一数据标识及所述第 一数据标识对应的更新数据;
[0007] 查询内存中是否存储有所述第一数据标识对应的历史数据;
[0008] 如果内存中存储有所述第一数据标识对应的历史数据,则根据所述更新数据更新 内存中存储的所述第一数据标识对应的历史数据,记录更新时间,并将所述第一数据标识 对应的更新状态更新为未更新到数据库状态;
[0009] 每隔预设周期将内存中存储的更新时间与当前时间的差值达到阈值且更新状态 为未更新到数据库状态的数据更新至数据库。
[0010] 进一步地,所述查询内存中是否存储有所述第一数据标识对应的历史数据之后, 还包括:
[0011] 如果内存中未存储所述第一数据标识对应的历史数据,则从数据库中获取所述第 一数据标识对应的历史数据;
[0012] 将从数据库中获取到的所述第一数据标识对应的历史数据存储至内存,并执行根 据所述更新数据更新内存中存储的所述第一数据标识对应的历史数据的步骤及后续步骤。
[0013] 进一步地,所述方法还包括:
[0014] 获取数据读取请求,所述数据读取请求中携带有第二数据标识;
[0015] 查询内存中是否存储有所述第二数据标识对应的历史数据;
[0016] 如果内存中存储有所述第二数据标识对应的历史数据,则从内存中读取所述第二 数据标识对应的历史数据;
[0017] 如果内存中未存储所述第二数据标识对应的历史数据,则从数据库中读取所述第 二数据标识对应的历史数据。
[0018] 进一步地,所述方法还包括:
[0019] 获取数据库中已存储的数据对应的数据标识,并预先设置至少两个数据标识列 表,将获取到的每个数据标识分别存储至对应的数据标识列表中;
[0020] 所述查询内存中是否存储有所述第一数据标识对应的历史数据之前,还包括:
[0021] 确定所述第一数据标识所在的数据标识列表,并在所述第一数据标识所在的数据 标识列表中查询所述第一数据标识;
[0022] 如果查询到所述第一数据标识,则执行查询内存中是否存储有所述第一数据标识 对应的历史数据的步骤;
[0023] 如果未查询到所述第一数据标识,则将所述第一数据标识及所述第一数据标识对 应的更新数据存储至内存,执行记录更新时间,并将所述第一数据标识对应的更新状态更 新为未更新到数据库状态的步骤及后续步骤。
[0024] 进一步地,所述查询内存中是否存储有所述第二数据标识对应的历史数据之前, 还包括:
[0025] 确定所述第二数据标识所在的数据标识列表,并在所述第二数据标识所在的数据 标识列表中查询所述第二数据标识;
[0026] 如果查询到所述第二数据标识,则执行查询内存中是否存储有所述第二数据标识 对应的历史数据的步骤。
[0027] 如果未查询到所述第二数据标识,则返回空值。
[0028] 另一方面,提供了一种数据更新的装置,所述装置包括:
[0029] 第一获取模块,用于获取数据更新请求,所述数据更新请求中携带有待更新的第 一数据标识及所述第一数据标识对应的更新数据;
[0030] 查询模块,用于查询内存中是否存储有所述第一数据标识对应的历史数据;
[0031] 第一更新模块,用于当内存中存储有所述第一数据标识对应的历史数据时,根据 所述更新数据更新内存中存储的所述第一数据标识对应的历史数据;
[0032] 第二更新模块,用于记录更新时间,并将所述第一数据标识对应的更新状态更新 为未更新到数据库状态;
[0033] 第三更新模块,用于每隔预设周期将内存中存储的更新时间与当前时间的差值达 到阈值且更新状态为未更新到数据库状态的数据更新至数据库。
[0034] 进一步地,所述装置,还包括:
[0035] 第二获取模块,用于当内存中未存储所述第一数据标识对应的历史数据时,从数 据库中获取所述第一数据标识对应的历史数据;
[0036] 第一存储模块,用于将从数据库中获取到的所述第一数据标识对应的历史数据存 储至内存。
[0037] 进一步地,所述装置还包括:
[0038] 第三获取模块,用于获取数据读取请求,所述数据读取请求中携带有第二数据标 识;
[0039] 所述查询模块,还用于查询内存中是否存储有所述第二数据标识对应的历史数 据;
[0040] 第一读取模块,用于当内存中存储有所述第二数据标识对应的历史数据时,从内 存中读取所述第二数据标识对应的历史数据;
[0041] 第二读取模块,用于当内存中未存储所述第二数据标识对应的历史数据时,从数 据库中读取所述第二数据标识对应的历史数据。
[0042] 进一步地,所述装置,还包括:
[0043] 第四获取模块,用于获取数据库中已存储的数据对应的数据标识;
[0044] 第二存储模块,用于将获取到的每个数据标识分别存储至对应的数据标识列表 中;
[0045] 所述查询模块,还用于确定所述第一数据标识所在的数据标识列表,并在所述第 一数据标识所在的数据标识列表中查询所述第一数据标识;当查询到所述第一数据标识 时,执行查询内存中是否存储有所述第一数据标识对应的历史数据的步骤;
[0046] 第三存储模块,用于当未查询到所述第一数据标识时,将所述第一数据标识及所 述第一数据标识对应的更新数据存储至内存;
[0047] 进一步地,所述查询模块,还用于确定所述第二数据标识所在的数据标识列表,并 在所述第二数据标识所在的数据标识列表中查询所述第二数据标识;当查询到所述第二数 据标识时,执行查询内存中是否存储有所述第二数据标识对应的历史数据的步骤。
[0048] 所述装置,还包括:
[0049] 返回模块,用于当未查询到所述第二数据标识时,返回空值。
[0050] 本发明实施例提供的技术方案带来的有益效果是:
[0051] 通过获取数据更新请求后,先将其更新至内存中,再每隔预设时间将内存中的数 据同步至数据库中;同时,获取数据读取请求后,先确定是否存储有待获取的数据,如果有, 再确定待获取的数据的存储位置,并在该位置获取待获取的数据,避免在更新频繁的应用 场景中,频繁访问数据库,而给数据库造成比较严重的文件碎片,提高数据库性能。
【附图说明】
[0052] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它 的附图。
[0053] 图1是本发明实施例提供的数据更新的实施环境示意图;
[0054] 图2是本发明实施例一提供的一种数据更新的方法流程图;
[0055] 图3是本发明实施例二提供的一种数据更新的方法流程图;
[0056] 图4是本发明实施例二提供的一种数据更新的交互示意图;
[0057] 图5是本发明实施例三提供的一种数据更新的方法流程图;
[0058] 图6是本发明实施例三提供的一种数据更新的交互示意图;
[0059] 图7是本发明实施例四提供的第一种数据更新的装置结构示意图;
[0060] 图8是本发明实施例四提供的第二种数据更新的装置结构示意图;
[0061]图9是本发明实施例四提供的第三种数据更
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1