CN117271656A - 一种数据同步的方法、装置、计算机设备 - Google Patents
一种数据同步的方法、装置、计算机设备 Download PDFInfo
- Publication number
- CN117271656A CN117271656A CN202310627310.5A CN202310627310A CN117271656A CN 117271656 A CN117271656 A CN 117271656A CN 202310627310 A CN202310627310 A CN 202310627310A CN 117271656 A CN117271656 A CN 117271656A
- Authority
- CN
- China
- Prior art keywords
- sentences
- thread
- threads
- data
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000004590 computer program Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据同步方法。所述方法包括:在主数据库的数据发生变化时,获取日志文件中的操作语句,所述操作语句包括表名称、主键值;对所述表名称、主键值进行哈希运算,得到哈希值,根据所述哈希值对线程池中的线程数量进行取模,得到取模运算值,所述取模运算值与线程编号相匹配;将所述操作语句发送至线程编号为取模运算值的线程中,以使同一线程中包括不同表名称的数据表中与主键值相关的操作语句;通过多个线程同时执行所述操作语句以更新从数据库中的数据。采用本方法能够提高数据同步的效率。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据同步的方法、装置、计算机设备。
背景技术
随着大数据的发展,大部分公司的系统都需要进行数据的存储,一般,可以通过数据库、文件、云存储等方式实现数据存储。其中,数据库是使用较多的存储方式,随着用户的数量以及数据量的增加,可以采用主从配置解决业务系统复杂的问题。
相关技术中,在实现主从数据同步时,采用单线程执行的方式,若某一条执行语句的影响数据量较大,可能会导致同步过程堵塞,难以提高执行效率。
发明内容
基于此,有必要针对上述技术问题,提供了一种数据同步的方法,可以根据哈希取模运算的结果将具有关联性的操作语句分配到同一线程中执行,提高数据同步效率。
第一方面,本申请提供了一种数据同步方法。所述方法包括:
在主数据库的数据发生变化时,获取日志文件中的操作语句,所述操作语句包括表名称、主键值;
对所述表名称、主键值进行哈希运算,得到哈希值,根据所述哈希值对线程池中的线程数量进行取模,得到取模运算值,所述取模运算值与线程编号相匹配;
将所述操作语句发送至线程编号为取模运算值的线程中,以使同一线程中包括不同表名称的数据表中与主键值相关的操作语句;
通过多个线程同时执行所述操作语句以更新从数据库中的数据。
在其中一个实施例中,所述将所述操作语句发送至线程编号为取模运算值的线程中之后,所述方法还包括:
获取所述日志文件中的操作语句,在所述操作语句的关联条数大于或等于条数阈值时,禁止所述操作语句执行。
在其中一个实施例中,所述方法还包括:
创建独立线程,在所述独立线程上执行关联条数大于或等于条数阈值的执行语句。
在其中一个实施例中,所述关联条数的关联性根据所述操作语句之间的数据关联性确定,所述存在关联性的操作语句分配到同一队列中,所述同一个队列对应同一个线程,所述同一个队列中的操作语句通过所述同一个线程按顺序执行。
在其中一个实施例中,所述方法还包括:
当操作语句的条数小于线程数量时,将多个操作语句分配至多个线程,多个线程并发执行;
通过所述多个线程同时执行所述操作语句以更新从数据库中的数据。
第二方面,本申请还提供了一种数据同步装置,所述装置包括:
获取模块,用于在主数据库的数据发生变化时,获取日志文件中的操作语句,所述操作语句包括表名称、主键值;
运算模块,用于对所述表名称、主键值进行哈希运算,得到哈希值,根据所述哈希值对线程池中的线程数量进行取模,得到取模运算值,所述取模运算值与线程编号相匹配;
分配模块,用于将所述操作语句发送至线程编号为取模运算值的线程中,以使同一线程中包括不同表名称的数据表中与主键值相关的操作语句;
执行模块,用于通过多个线程同时执行所述操作语句以更新从数据库中的数据。
在其中一个实施例中,所述将所述操作语句发送至线程编号为取模运算值的线程中之后,所述装置还包括:
获取所述日志文件中的操作语句,在所述操作语句的关联条数大于或等于条数阈值时,禁止所述操作语句执行。
在其中一个实施例中,所述装置还包括:
创建独立线程,在所述独立线程上执行关联条数大于或等于条数阈值的执行语句。
在其中一个实施例中,所述关联条数的关联性根据所述操作语句之间的数据关联性确定,所述存在关联性的操作语句分配到同一队列中,所述同一个队列对应同一个线程,所述同一个队列中的操作语句通过所述同一个线程按顺序执行。
在其中一个实施例中,所述装置还包括:
当操作语句的条数小于线程数量时,将多个操作语句分配至多个线程,多个线程并发执行;
通过所述多个线程同时执行所述操作语句以更新从数据库中的数据。
第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现数据同步方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现数据同步方法的步骤。
第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现数据同步方法的步骤。
上述数据同步方法,至少包括以下有益效果:
可以通过对表名称、主键值进行哈希取模操作,将相互关联的操作语句由同一线程执行,各个线程同时执行操作语句,更新从数据库中的数据,提高数据同步的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据同步方法的应用环境图;
图2为一个实施例中数据同步方法的流程示意图;
图3为一个实施例中数据同步装置的结构框图;
图4为一个实施例中计算机设备的内部结构图;
图5为一个实施例中一种服务器的内部结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本公开实施例提供一种数据同步方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在本公开的一些实施例中,如图2所示,提供了一种数据同步方法,以该方法应用于图1中的服务器对操作语句进行处理为例进行说明。可以理解的是,该方法可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。具体的一个实施例中,所述方法可以包括以下步骤:
S202:在主数据库的数据发生变化时,获取日志文件中的操作语句,所述操作语句包括表名称、主键值。
主数据库可以是关系型数据库(Mysql)的主数据库,日志文件可以是二进制日志文件(binlog)。主数据库中数据的改变包括数据增加、数据更改和数据的删除。在主数据库中的数据发生增加、更改和删除等操作时,可以在日志文件中记录主数据库的操作语句。
表名称可以通过用户自定义的方式设置,与表中存储的数据类型相关。主键可以用于表示表中某一行或某一列,可以作为数据的索引标识,在一个表中不存在重复的主键。例如,表名称为学生表,可以表示这张表用于描述学生属性,而表中的主键可以是用于唯一标识学生的学生编号。
S204:对所述表名称、主键值进行哈希运算,得到哈希值,根据所述哈希值对线程池中的线程数量进行取模,得到取模运算值,所述取模运算值与线程编号相匹配。
可以对表名称、主键值进行哈希运算,得到主键值对应的哈希值,使用哈希运算可以将任意长度的输入变为固定长度的输出,便于后续对哈希值进行取模的操作。
用哈希值对线程数量进行取模,得到取模运算值。例如,用户的主键值为字符串,对字符串做哈希运算,可以得到字符串对应的哈希值,假设得到的哈希值为17,线程数量为4,根据哈希值对线程数量进行取模,17/4=1,得到的取模运算之为1,则主键值对应的数据被分配到线程编号为1的线程上进行操作。
S206:将所述操作语句发送至线程编号为取模运算值的线程中,以使同一线程中包括不同表名称的数据表中与主键值相关的操作语句。
在本公开的一些实施例中,若线程池中的线程数量为10个,选取的操作语句为100条,可以对表名称、主键值进行哈希运算,得到哈希值,与10进行取模,可以将取模运算值对应的操作语句发送至线程编号为取模运算值的线程中,保障同一线程中包括不同表名称的数据表中与主键值相关的操作语句,提高数据同步的效率。即将相互关联的操作语句放到同一队列中,一个队列中的操作语句由一个线程执行,减少对从数据库的操作次数,可以减少资源的占用,提高数据同步的一致性与效率。
S208:通过多个线程同时执行所述操作语句以更新从数据库中的数据。
从日志文件中获取多个操作语句后,可以通过哈希取模的方式将操作语句对应各自的线程,各个线程同时执行,从而保证可以同时执行各个操作语句,同时对从数据库中同时进行多个操作语句,提高数据同步的稳定性。
通过多个线程同时执行操作语句,可以将从数据库中的数据进行与主数据库中相同的操作,并更新从数据库中的数据,保证主数据库和从数据库中数据的一致性。其中,从数据库可以为关系型数据库从数据库。
上述数据同步方法中,可以通过对表名称、主键值进行哈希取模操作,将相互关联的操作语句由同一线程执行,各个线程同时执行操作语句,更新从数据库中的数据,提高数据同步的效率。
在本公开的一些实施例中,所述将所述操作语句发送至线程编号为取模运算值的线程中之后,所述方法还包括:
获取所述日志文件中的操作语句,在所述操作语句的关联条数大于或等于条数阈值时,禁止所述操作语句执行。
通过对表名称、主键值进行哈希取模运算,将操作语句发送至线程编号为取模运算值的线程中,即相互关联的操作语句由同一线程执行,可能某线程中操作语句的条数较多,可以在操作语句的关联条数大于或等于条数阈值时,禁止执行此操作语句。
在本公开的一些实施例中,所述方法还包括:
创建独立线程,在所述独立线程上执行关联条数大于或等于条数阈值的执行语句。
当关联条数超过条数阈值时,由外部新建一个独立的新的线程,该组操作语句将在此独立线程上执行数据同步操作。
在本公开的一些实施例中,所述关联条数的关联性根据所述操作语句之间的数据关联性确定,所述存在关联性的操作语句分配到同一队列中,所述同一个队列对应同一个线程,所述同一个队列中的操作语句通过所述同一个线程按顺序执行。
将存在关联性的操作语句分配到同一队列中,将同一队列中的操作语句分配至同一线程,可以同一线程中的操作语句按照加入时间顺序、数据量大小顺序等进行执行。
在本公开的一些实施例中,所述方法还包括:
当操作语句的条数小于线程数量时,将多个操作语句分配至多个线程,多个线程并发执行;
通过所述多个线程同时执行所述操作语句以更新从数据库中的数据。
在本公开的一些实施例中,最大线程数可能为10条,操作语句的条数为8条,将多个操作语句分配至多个线程,即一个操作语句对应一个线程,各个线程是同步执行的,可以同时执行各个操作语句,同时对从数据库中执行多个操作语句,提高数据同步的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的针对数据同步方法的数据同步装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的数据同步装置实施例中的具体限定可以参见上文中对于数据同步方法的限定,在此不再赘述。
所述装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本公开实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在一个实施例中,如图3所示,提供了一种数据同步装置300,所述装置可以为前述服务器,或者集成于所述服务器的模块、组件、器件、单元等。该装置300可以包括:
获取模块302,用于在主数据库的数据发生变化时,获取日志文件中的操作语句,所述操作语句包括表名称、主键值;
运算模块304,用于对所述表名称、主键值进行哈希运算,得到哈希值,根据所述哈希值对线程池中的线程数量进行取模,得到取模运算值,所述取模运算值与线程编号相匹配;
分配模块306,用于将所述操作语句发送至线程编号为取模运算值的线程中,以使同一线程中包括不同表名称的数据表中与主键值相关的操作语句;
执行模块308,用于通过多个线程同时执行所述操作语句以更新从数据库中的数据。
在其中一个实施例中,所述将所述操作语句发送至线程编号为取模运算值的线程中之后,所述装置还包括:
获取所述日志文件中的操作语句,在所述操作语句的关联条数大于或等于条数阈值时,禁止所述操作语句执行。
在其中一个实施例中,所述装置还包括:
创建独立线程,在所述独立线程上执行关联条数大于或等于条数阈值的执行语句。
在其中一个实施例中,所述关联条数的关联性根据所述操作语句之间的数据关联性确定,所述存在关联性的操作语句分配到同一队列中,所述同一个队列对应同一个线程,所述同一个队列中的操作语句通过所述同一个线程按顺序执行。
在其中一个实施例中,所述装置还包括:
当操作语句的条数小于线程数量时,将多个操作语句分配至多个线程,多个线程并发执行;
通过所述多个线程同时执行所述操作语句以更新从数据库中的数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
上述针对数据同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储操作语句。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据同步方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现数据同步方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4、图5中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本公开任一实施例所述的方法。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例所述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。
Claims (13)
1.一种数据同步的方法,其特征在于,所述方法包括:
在主数据库的数据发生变化时,获取主数据库的日志文件中的操作语句,所述操作语句包括表名称、主键值;
对所述表名称、主键值进行哈希运算,得到哈希值,根据所述哈希值对线程池中的线程数量进行取模,得到取模运算值,所述取模运算值与线程编号相匹配;
将所述操作语句发送至线程编号为取模运算值的线程中,以使同一线程中包括不同表名称的数据表中与主键值相关的操作语句;
通过多个线程同时执行所述操作语句以更新从数据库中的数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述操作语句发送至线程编号为取模运算值的线程中之后,所述方法还包括:
获取所述日志文件中的操作语句,在所述操作语句的关联条数大于或等于条数阈值时,禁止所述操作语句执行。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
创建独立线程,在所述独立线程上执行关联条数大于或等于条数阈值的执行语句。
4.根据权利要求3所述的方法,其特征在于,所述关联条数的关联性根据所述操作语句之间的数据关联性确定,将存在关联性的操作语句分配到同一队列中,所述同一个队列对应同一个线程,所述同一个队列中的操作语句通过所述同一个线程按顺序执行。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当操作语句的条数小于线程数量时,将多个操作语句分配至多个线程,多个线程并发执行;
通过所述多个线程同时执行所述操作语句以更新从数据库中的数据。
6.一种数据同步装置,其特征在于,所述装置包括:
获取模块,用于在主数据库的数据发生变化时,获取主数据库的日志文件中的操作语句,所述操作语句包括表名称、主键值;
运算模块,用于对所述表名称、主键值进行哈希运算,得到哈希值,根据所述哈希值对线程池中的线程数量进行取模,得到取模运算值,所述取模运算值与线程编号相匹配;
分配模块,用于将所述操作语句发送至线程编号为取模运算值的线程中,以使同一线程中包括不同表名称的数据表中与主键值相关的操作语句;
执行模块,用于通过多个线程同时执行所述操作语句以更新从数据库中的数据。
7.根据权利要求6所述的装置,其特征在于,所述将所述操作语句发送至线程编号为取模运算值的线程中之后,所述装置还包括:
获取所述日志文件中的操作语句,在所述操作语句的关联条数大于或等于条数阈值时,禁止所述操作语句执行。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
创建独立线程,在所述独立线程上执行关联条数大于或等于条数阈值的执行语句。
9.根据权利要求8所述的装置,其特征在于,所述关联条数的关联性根据所述操作语句之间的数据关联性确定,将存在关联性的操作语句分配到同一队列中,所述同一个队列对应同一个线程,所述同一个队列中的操作语句通过所述同一个线程按顺序执行。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
当操作语句的条数小于线程数量时,将多个操作语句分配至多个线程,多个线程并发执行;
通过所述多个线程同时执行所述操作语句以更新从数据库中的数据。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310627310.5A CN117271656A (zh) | 2023-05-30 | 2023-05-30 | 一种数据同步的方法、装置、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310627310.5A CN117271656A (zh) | 2023-05-30 | 2023-05-30 | 一种数据同步的方法、装置、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271656A true CN117271656A (zh) | 2023-12-22 |
Family
ID=89207008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310627310.5A Pending CN117271656A (zh) | 2023-05-30 | 2023-05-30 | 一种数据同步的方法、装置、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117271656A (zh) |
-
2023
- 2023-05-30 CN CN202310627310.5A patent/CN117271656A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114089921A (zh) | 电力系统数据存储方法、装置、计算机设备和存储介质 | |
JP2021103584A (ja) | 磁気ディスクの管理方法、磁気ディスクの管理装置、電子機器、コンピュータプログラムおよびコンピュータ可読記憶媒体 | |
CN117370488A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN117271656A (zh) | 一种数据同步的方法、装置、计算机设备 | |
CN115495452A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
Perwej et al. | An extensive investigate the mapreduce technology | |
US11429570B2 (en) | Batch data import advance mapping | |
CN117290302B (zh) | 目录分离方法、装置、计算机设备和存储介质 | |
CN116226145A (zh) | 数据交互方法、装置、计算机设备和存储介质 | |
KR101602170B1 (ko) | 효율적인 메모리 사용을 위한 대용량 데이터 공유 시스템 및 방법 | |
CN115878715A (zh) | 一种页面展示方案的生成方法、装置、计算机设备 | |
CN117435589A (zh) | 数据转存方法、装置、计算机设备、存储介质 | |
CN115510130A (zh) | 报表生成方法、装置、计算机设备和存储介质 | |
CN116108010A (zh) | 数据查询方法、装置、电子设备以及计算机存储介质 | |
CN116204541A (zh) | 多维数据库更新方法、装置、计算机设备和存储介质 | |
CN117082143A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN117667865A (zh) | 数据分布式存储方法、装置、设备及介质 | |
CN116029026A (zh) | 模型文件处理方法、装置、设备、存储介质和程序产品 | |
CN116400922A (zh) | 界面引导示意图生成方法、装置、计算机设备和存储介质 | |
CN118331961A (zh) | 目标账户的分库存储方法、装置、计算机设备、可读存储介质 | |
CN114385630A (zh) | 血缘关系梳理方法、装置、设备、存储介质和程序产品 | |
CN116894044A (zh) | 数据管理方法、装置、计算机设备和存储介质 | |
CN116737140A (zh) | 业务组件构建方法、装置、计算机设备及存储介质 | |
CN115374114A (zh) | 数据维护的方法、装置、计算机设备和存储介质 | |
CN117439769A (zh) | 页面访问方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |