关系数据库与内存数据库同步方法、系统及电子设备技术方案

技术编号:36786044 阅读:12 留言:0更新日期:2023-03-08 22:28
本申请提供一种关系数据库与内存数据库同步方法,包括:针对关系数据库中各源数据表分别注册三个触发器;其中,三个触发器分别为插入操作触发器、删除操作触发器和修改操作触发器;在源数据表数据发生插入、删除或修改操作时,相应的触发器动作,将表名、主键和操作语句作为记录项存储于数据更新列表,并生成记录项ID;内存数据库按照记录项ID查询所述数据更新列表,并根据相应的记录项对相应的记录数据表执行操作语句对应的操作,以完成内存数据库与关系数据库的数据同步;其中,记录数据表中包含对应表名的源数据表中的数据。本申请实施例在完成关系数据库与内存数据库同步过程中,无需借助中间数据库,同步效率高。同步效率高。同步效率高。

【技术实现步骤摘要】
关系数据库与内存数据库同步方法、系统及电子设备


[0001]本申请涉及数据处理
,尤其涉及一种关系数据库与内存数据库同步方法、系统及电子设备。

技术介绍

[0002]随着互联网技术的高速发展,全球数据量呈爆炸式增长,为了提升数据存取性能,现有技术中经常采用分表或者分库的形式进行数据存储。分表是指在一个数据库下面分成多张表,表结构保持不变,使得拆分后数据集的并集等于拆分前的数据集。分库是指按照特定的条件和维度,将同一个数据库中的数据拆分到多个数据库中,以达到分散单库负载的效果。具体的,对于同一信息处理系统,基于源数据库即关系数据库以及不同使用需求,为该信息处理系统建立多个数据库即内存共享数据库。当关系数据库中的数据发生变化时,要保证基于关系数据库建立的内存共享数据库与关系数据库之间的数据同步,就需要根据关系数据库的数据变化对内存共享数据库进行数据同步。
[0003]在实现本申请实施例过程中发现现有数据同步方案需要中间数据库,同步速度慢。

技术实现思路

[0004]本申请实施例提供了一种关系数据库与内存数据库同步方法、系统及电子设备,以解决现有数据同步方案同步速度慢的问题。
[0005]第一方面,本申请实施例提供了一种关系数据库与内存数据库同步方法,包括:
[0006]针对关系数据库中各源数据表分别注册三个触发器;其中,三个触发器分别为插入操作触发器、删除操作触发器和修改操作触发器;
[0007]在源数据表数据发生插入、删除或修改操作时,相应的触发器动作,将表名、主键和操作语句作为记录项存储于数据更新列表,并生成记录项ID;
[0008]内存数据库按照记录项ID查询所述数据更新列表,并根据相应的记录项对相应的记录数据表执行操作语句对应的操作,以完成内存数据库与关系数据库的数据同步;其中,记录数据表中包含对应表名的源数据表中的数据。
[0009]在一种可能的实现方式中,所述内存数据库按照记录项ID查询所述数据更新列表,包括:
[0010]在所述数据更新列表新增记录项时,基于新增记录项ID查询所述数据更新列表;或者,
[0011]在所述数据更新列表新增记录项数量达到设定值时,基于新增记录项ID由小到大的顺序查询所述数据更新列表;或者,
[0012]确定设定时间间隔内新增记录项ID,并按照设定时间间隔基于新增记录项ID由小到大的顺序查询所述数据更新列表。
[0013]在一种可能的实现方式中,所述内存数据库按照记录项ID查询所述数据更新列表
之前,还包括:
[0014]获取待同步记录项ID,并根据所述待同步记录项ID查询所述数据更新列表增量的范围,确定新增记录项ID;
[0015]所述根据相应的记录项对相应的记录数据表执行操作语句对应的操作之后,还包括:
[0016]所述内存数据库更新所述待同步记录项ID。
[0017]在一种可能的实现方式中,该方法还包括:
[0018]在包括多个关系数据库和/或内存数据库时,在各内存数据库和相应的各关系数据库之间创建查询线程,各内存数据库基于查询线程查询相应的关系数据库的数据更新列表;其中,对应各关系数据库设置数据更新列表。
[0019]在一种可能的实现方式中,在内存数据库包括多个查询线程时,所述方法还包括:
[0020]对多个查询线程进行排序,并按顺序逐个启动相应的查询线程;或者,
[0021]对多个查询线程进行分组及排序,并按分组顺序逐个启动相应的查询线程。
[0022]在一种可能的实现方式中,所述方法还包括:
[0023]在内存数据库和相应的关系数据库中各源数据表之间创建查询线程,内存数据库基于查询线程查询相应的关系数据库中各源数据表的数据更新列表;其中,对应各关系数据库中的源数据表设置数据更新列表。
[0024]在一种可能的实现方式中,在内存数据库包括多个查询线程时,所述方法还包括:
[0025]对多个查询线程按照相应的源数据表所属关系数据库进行分组及排序,并按分组顺序逐个启动相应的查询线程。
[0026]第二方面,本申请实施例提供了一种数据同步系统,包括:
[0027]关系数据库,用于针对各源数据表分别注册三个触发器;其中,三个触发器分别为插入操作触发器、删除操作触发器和修改操作触发器;在源数据表数据发生插入、删除或修改操作时,相应的触发器动作,将表名、主键和操作语句作为记录项存储于数据更新列表,并生成记录项ID;
[0028]内存数据库,用于按照记录项ID查询所述数据更新列表,并根据相应的记录项对相应的记录数据表执行操作语句对应的操作,以完成内存数据库与关系数据库的数据同步;其中,记录数据表中包含对应表名的源数据表中的数据。
[0029]第二方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
[0030]第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
[0031]本申请实施例提供一种关系数据库与内存数据库同步方法、系统及电子设备,通过针对关系数据库中各源数据表分别注册操作触发器、删除操作触发器和修改操作触发器三个触发器,以及设置数据更新列表,在源数据表数据发生插入、删除或修改操作时,相应的触发器动作并在数据更新列表新增记录项,完成关系数据库中各源数据表的操作记录。内存数据库按照记录项ID查询数据更新列表,并执行对应的操作完成与关系数据库的数据
同步。本申请实施例在完成关系数据库与内存数据库同步过程中,无需借助中间数据库,同步效率高。
附图说明
[0032]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0033]图1是本申请一实施例提供的关系数据库与内存数据库同步方法的实现流程图;
[0034]图2是本申请一实施例提供的内存数据库数据同步的实现流程图;
[0035]图3是本申请一实施例提供的数据同步系统的结构示意图;
[0036]图4是本申请一实施例提供的电子设备的结构示意图。
具体实施方式
[0037]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种关系数据库与内存数据库同步方法,其特征在于,包括:针对关系数据库中各源数据表分别注册三个触发器;其中,三个触发器分别为插入操作触发器、删除操作触发器和修改操作触发器;在源数据表数据发生插入、删除或修改操作时,相应的触发器动作,将表名、主键和操作语句作为记录项存储于数据更新列表,并生成记录项ID;内存数据库按照记录项ID查询所述数据更新列表,并根据相应的记录项对相应的记录数据表执行操作语句对应的操作,以完成内存数据库与关系数据库的数据同步;其中,记录数据表中包含对应表名的源数据表中的数据。2.根据权利要求1所述的关系数据库与内存数据库同步方法,其特征在于,内存数据库按照记录项ID查询所述数据更新列表,包括:在所述数据更新列表新增记录项时,基于新增记录项ID查询所述数据更新列表;或者,在所述数据更新列表新增记录项数量达到设定值时,基于新增记录项ID由小到大的顺序查询所述数据更新列表;或者,确定设定时间间隔内新增记录项ID,并按照设定时间间隔基于新增记录项ID由小到大的顺序查询所述数据更新列表。3.根据权利要求2所述的关系数据库与内存数据库同步方法,其特征在于,所述内存数据库按照记录项ID查询所述数据更新列表之前,还包括:获取待同步记录项ID,并根据所述待同步记录项ID查询所述数据更新列表增量的范围,确定新增记录项ID;所述根据相应的记录项对相应的记录数据表执行操作语句对应的操作之后,还包括:所述内存数据库更新所述待同步记录项ID。4.根据权利要求1至3任一项所述的关系数据库与内存数据库同步方法,其特征在于,还包括:在包括多个关系数据库和/或内存数据库时,在各内存数据库和相应的各关系数据库之间创建查询线程,各内存数据库基于查询线程查询相应的关系数据库的数据更新列表;其中,对应各关系数据库设置数据更新列表。5.根据权利要求4所述的关系数...

【专利技术属性】
技术研发人员:李维维林峰平李焕鹏易柯楠张孝山周正龙文志雄
申请(专利权)人:科华数据股份有限公司
类型:发明
国别省市:

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

1