CN111488366A - 关系型数据库更新方法、装置、设备及存储介质 - Google Patents
关系型数据库更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111488366A CN111488366A CN202010272594.7A CN202010272594A CN111488366A CN 111488366 A CN111488366 A CN 111488366A CN 202010272594 A CN202010272594 A CN 202010272594A CN 111488366 A CN111488366 A CN 111488366A
- Authority
- CN
- China
- Prior art keywords
- requests
- request queue
- updating
- update
- relational database
- 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.)
- Granted
Links
Images
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/23—Updating
-
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种关系型数据库更新方法、装置、设备及存储介质,涉及云计算领域。具体实现方案为:通过获取与关系型数据库中相同的数据行对应的多个更新请求;获取包含所述多个更新请求的初始请求队列,由此将针对相同数据行的更新请求排序组成队列,降低了锁竞争的可能;然后将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列;顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新,其中舍弃部分冗余的更新请求,减轻了数据库更新处理的负载,进而提高了关系型数据库的更新效率和可靠性。
Description
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种关系型数据库更新方法、装置、设备及存储介质,可用于云计算领域。
背景技术
关系型数据库应用于各种数据存储和处理领域中。在对关系型数据库的数据行执行修改更新操作时,关系型数据库发出排他锁,授予当前事务的进程访问此行数据的排他访问权限。这样的排他访问,可以防止任何并发事务或者链接的进程,对处于更新中的行数据进行操作。
然而,对于频繁重复更新、一致性要求不高的行数据而言,大量集中的更新操作会产生激烈的行锁竞争,占用资源开销,影响了数据库的性能。现有关系型数据库的更新效率不够高。
发明内容
提供了一种关系型数据库更新方法、装置、设备及存储介质。
根据第一方面,提供了一种关系型数据库更新方法,包括:
获取与关系型数据库中相同的数据行对应的多个更新请求;
获取包含所述多个更新请求的初始请求队列;
将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列;
顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新。
根据第二方面,提供了一种关系型数据库更新装置,包括:
请求获取模块,用于获取与关系型数据库中相同的数据行对应的多个更新请求;
队列获取模块,用于获取包含所述多个更新请求的初始请求队列;
冗余舍弃模块,用于将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列;
更新执行模块,用于顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新。
根据第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的关系型数据库更新方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的关系型数据库更新方法。
根据本申请的技术通过将针对相同数据行的更新请求排序组成队列,降低了产生锁竞争的可能,并舍弃部分冗余的更新请求,降低对计算资源的占用,减轻了数据库更新处理的负载,进而提高了关系型数据库的更新效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请的一种应用场景示意图;
图2是本申请实施例提供的一种关系型数据库更新方法流程示意图;
图3是本申请实施例提供的一种对数据行的更新示例;
图4是本申请实施例提供的另一种关系型数据库更新方法流程示意图;
图5是本申请实施例提供的一种对数据行的拆分示例;
图6是本申请实施例提供的一种关系型数据库更新装置结构示意图;
图7是本申请实施例提供的另一种关系型数据库更新装置结构示意图;
图8是本申请实施例提供的一种用于实现关系型数据库更新方法的电子设备结构框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。关系型数据库中每条记录对应二维表中的一行,而记录包含的字段则是二维表中的列。
在现有的关系型数据库中,以排他锁来保证数据更新的可靠性。执行更新请求的事务连接到数据库后,查找到需要更新的数据行,检查该数据行的行锁是否被其他事务占用,若被占用则等待其被释放,若没被占用则拿锁开始更新数据行中的数据。然而,关系型数据库的性能瓶颈一部分源于数据库针对于特定数据行集中发出的更新操作,这种大量的集中更新会导致不同事务之间的行锁竞争,导致数据库性能下降,进而导致数据库调用服务连接耗时增长。
参见图1,是本申请的一种应用场景示意图。在图1所示的场景中,假设是网页上开展节日签到活动,多个终端1发起对签到页面的签到请求,服务器2响应这些签到请求对签到页面的最新签到信息,对关系型数据库中存储最新签到信息的行数据进行频繁而时间集中的更新操作。尤其是特殊时刻的整点签到,可能短时间收到众多用户发出的上百条甚至上千条签到请求。现有的锁机制需要所有签到请求针对一数据行进行抢锁,导致了大量的锁竞争,而短时间对最新签到信息的频繁更新则是对服务器2处理资源的浪费,可能导致服务器2因开销过大而出现卡顿。现有的关系型数据库更新效率和可靠性不够高。
参见图2,是本申请实施例提供的一种关系型数据库更新方法流程示意图。图2所示方法例如可以是由图1所示的服务器2或内嵌于服务器2中的软件和/或硬件装置执行的。图2所示方法包括如下步骤S202至S104。
S101,获取与关系型数据库中相同的数据行对应的多个更新请求。
具体地,可以是在检测到对关系型数据库中某一数据行存在多个更新请求时,获取到这些更新请求。例如,可以进锁竞争的监测,当监测到出现锁竞争时,获取存在锁竞争关系的多个更新请求。
其中,这些更新请求可以是外部输入的,例如图1所示终端1发送给服务器2的,也可以是本地生成的,例如图1所示服务器2本地生成的,在此不做限定。
本实施例中的数据行可以是如图1所示场景中的最新签到信息,也可以是点赞信息、回复信息、评论信息等,在此不做列举。
在一些实施例中,步骤S101的具体实现方式例如可以是在预设的处理周期内,获取与关系型数据库中相同的数据行对应的多个更新请求,其中,所述数据行为无一致性要求的数据类型。假如处理周期为10秒,则例如每10秒获取一次更新请求,对这些更新请求进行图2所示的流程处理。而本实施例中获取的更新请求所针对的相同的数据行,例如是无一致性要求的数据类型,例如点赞刷新记录等频繁更新却无需严格遵守一致性要求的数据。通过减少对无一致性要求的数据行的处理负载,可以分出更多资源处理有一致性要求的数据,进而提高关系型数据库的处理效率。
S102,获取包含所述多个更新请求的初始请求队列。
具体地,在确定了上述多个更新请求后,对获取到的更新请求排成队列得到初始请求队列。将初始请求队列中更新请求的排序,作为各更新请求的拿锁更新数据行的顺序,从而降低了锁竞争。
在一些实施例中,所有更新请求组成一个初始请求队列,那么则将多个更新请求对一个数据行的锁竞争转化为了初始请求队列中更新请求的对数据行的顺序拿锁、执行更新操作,消除了行锁竞争,由此消除了锁竞争的资源开销。
在另一些实施例中,获取到2个或2个以上的初始请求队列,那么初始请求队列之间仍可能存在锁竞争,但将更新请求的锁竞争转化为了初始请求队列的锁竞争,减少的竞争者数量,仍是降低了锁竞争的激烈程度,由此减少锁竞争的资源开销。
本实施例中获取初始请求队列的具体方式,可以是以代理服务的方式对获取到的更新请求进行排序,并在该代理服务中提供舍弃规则和关系型数据库的连接。代理仅作为一种可选方式,不作为本实施例的限定。
S103,将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列。
具体地,可以根据预设的舍弃规则,在初始请求队列中选择性地舍弃部分更新请求,剩下的更新请求按原本的相对顺序组成剩余请求队列。应当理解地,以图1所示应用场景为例,在较短时间(例如1秒)内将最新签到信息更新100次和更新10次,对于用户而言区别不大,更新频率过大却占用较大的服务器资源,导致数据库调用缓慢。因此,将部分更新请求合理舍弃一部分,有效地减轻了处理负载,提高了更新效率。
S104,顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新。
具体地,剩余请求队列中的更新请求依次对数据行执行更新操作。参见图3,是本申请实施例提供的一种对数据行的更新示例。例如,最新签到信息所在数据行包括如图3所示的三个字段:最后签到用户、最后签到时间、签到数。其中,每个字段对应数据行的列。剩余请求队列中的更新请求依次为(用户甲,T1)、(用户乙,T5)、(用户丙,T11)、(用户丁,T14),由此对数据行进行更新,先更新为“用户甲,T1,1”,然后更新为“用户乙,T5,2”、再更新为“用户丙,T11,3”、最后更新为“用户丁,T14,4”。由此,具有4个更新请求的剩余请求队列,对数据行进行更新操作,最后得到的更新后的数据行是“用户丁,T14,4”。
本实施例提供的关系型数据库更新方法,通过获取与关系型数据库中相同的数据行对应的多个更新请求;获取包含所述多个更新请求的初始请求队列,由此将针对相同数据行的更新请求排序组成队列,降低了锁竞争的可能;然后将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列;顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新,其中舍弃部分冗余的更新请求,减轻了数据库更新处理的负载,进而提高了关系型数据库的更新效率和可靠性。
图2所示步骤S103(将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列)的实现方式有多种,在一些实施例中可以引入更新频次来确定舍弃占比。具体地,例如可以首先根据所述初始请求队列中更新请求的数量,获取所述初始请求队列对应的更新频次。其中的更新频次例如是预设评价周期(例如1秒)中更新的次数为10次或者20次。然后根据所述更新频次和预设的冗余阈值,确定冗余占比。例如,更新到达10次/s,冗余占比为80%;更新到达20次/s,冗余占比为90%。接着,在所述初始请求队列中以所述冗余占比确定冗余请求,并将所述请求队列中的冗余请求舍弃,得到剩余请求队列。本实施例通过初始请求队列的更新频次,能够更加准确地确定出初始请求队列中的冗余占比,从而适当地减少对数据行的更新次数,降低对关系型数据库中数据行的更新开销,提高关系型数据库的处理效率。
在上述引入更新频次的实施例中,在所述初始请求队列中以所述冗余占比确定冗余请求的实现方式有多种,作为一种实现方式,可以根据所述冗余占比,将所述初始请求队列排序靠前的更新请求确定为冗余请求,其中,所述初始请求队列中更新请求的顺序是按请求的获取时刻从前到后排序。例如一个初始请求队列中包含100个更新请求,冗余占比假如是80%,那么将最早获取到的80个更新请求舍弃,保留最新的20个更新请求作为剩余请求队列。通过保留最新的更新请求,可以提高对数据行更新的准确性。
在一些实施例中,参见图4,是本申请实施例提供的另一种关系型数据库更新方法流程示意图。在图2所示流程的基础上,图4所示实施例中的初始请求队列的数量是2个或2个以上,并增加了对数据行的拆分处理的过程。图4所示方法包括如下步骤S201至S206。
S201,获取与关系型数据库中相同的数据行对应的多个更新请求。
S202,将所述多个更新请求划分为N个初始请求队列,N为大于或等于2的整数。
例如在更新请求数量过多的情况下,可以划分成多个初始请求队列。相应地,剩余请求队列的数量也是2个或2个以上。
S203,将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列。
步骤S201至S203的具体实施方式和技术效果参见图2所示步骤S101至S103的说明,在此不做赘述。
S204,将所述关系型数据库中的所述数据行进行拆分,得到M个拆分行,M为大于或等于2的整数。
可以理解地,当多个更新请求以一个数据行为竞争目标时,将单行拆分为多行,由此可以增加竞争目标的数量,从而降低竞争程度,减少处于锁等待期间的更新请求,进而减少了锁等待的总体时间,提高了数据库的更新效率。具体地,可以根据数据行中数量类型的数据在粒度的维度上进行拆分,拆分到至少2个拆分行中。这种拆分可以是平均拆分,也可以是非平均的拆分。参见图5,是本申请实施例提供的一种对数据行的拆分示例。在图5所示的数据行中,数据行H0初始存储的签到数为20,拆分为2个拆分行H1和H2,每个拆分行中的签到数为10。
S205,将所述M个拆分行分配给所述N个初始请求队列对应的N个剩余请求队列执行更新。
假设数据库对每个拆分行发出一个排他锁,那么拆分行的数量为多个时,其对应的拆分行锁也为多个。剩余请求队列需要取到拆分锁后才能对拆分锁对应的拆分行进行更新操作。可以理解地,剩余请求队列从要抢1个行锁,转化为要抢多个拆分行锁之一,竞争激烈程度降低,抢到的概率增大,更新速度提高。假设有4个剩余请求队列,如果拆分出3个拆分行,那么其中的3个剩余请求队列可以先对拆分行进行更新,然后最早完成更新的剩余请求队列释放拆分行的拆分行锁时,最后1个剩余请求队列则拿到释放的拆分行锁执行拆分行的更新操作。相比只有1个数据行而言,本实施例将数据行拆分为多个拆分行分配给初始请求队列执行,实现多个剩余请求队列的同时更新,减少了剩余请求队列的等待时间,具有较高的处理效率。
在一些实施例中,为了提高拆分行的利用率,以及减少剩余请求队列等待时间,将数据行拆分出拆分行之前,还可以先根据剩余请求队列的数量确定拆分行的数量。例如所述拆分行的数量M与所述剩余请求队列的数量N一致。那么,在上述4个剩余请求队列的实施例中,就可以拆分出4个拆分行,由此将4个拆分行分配给4个剩余请求队列,每个剩余请求队列分配到一个拆分行,并行地执行更新操作。在图5所示的示例中,如果剩余请求队列D1和D2都对数据行H0进行更新,则产生锁竞争。而经过本实施例的拆分处理后,得到两个拆分行H1和H2,那么将拆分行H1分配给剩余请求队列D1,将拆分行H2分配给剩余请求队列D2,两个剩余请求队列同时进行执行更新请求,无需锁竞争,也无队列需等待。本实施例以数量一致的拆分行和剩余请求队列,避免出现无剩余请求队列可分配的拆分行,以及无拆分行可处理的剩余请求队列,提高了更新效率。
S206,将更新后的M个拆分行合并,得到更新后的数据行。
拆分行更新后,还可以进行合并,由多行还原为一行。拆分行的合并可以是根据预设字段合并规则,将拆分行中各字段的值进行合并。例如,对于签到数字段的合并,可以是将M个拆分行中签到数的值相加求和,将求和结果作为签到数的合并值。对于最后签到时间字段的合并,可以是将M个拆分行中最后签到时间中最晚的时间数值作为最后签到时间的合并值。对于最新签到用户字段的合并,可以将最后签到时间的合并值所属拆分行中的最新签到用户名称,作为最新签到用户的合并值。
本实施例将存在锁竞争的数据行拆分为多个拆分行,增加了初始请求队列要抢的锁数量,将对单个数据行的竞争处理转化为了对多个拆分行的竞争处理,从而降低了锁竞争的激烈程度,能够有更多初始请求队列同时获取到一个拆分行执行更新,减少了锁等待时间,提高了更新效率。
参见图6,是本申请实施例提供的一种关系型数据库更新装置结构示意图。图6所示的关系型数据库更新装置60例如是图1所示场景中的服务器2,或内置于服务器2中的软件模块。关系型数据库更新装置60包括:
请求获取模块61,用于获取与关系型数据库中相同的数据行对应的多个更新请求。
队列获取模块62,用于获取包含所述多个更新请求的初始请求队列。
冗余舍弃模块63,用于将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列。
更新执行模块64,用于顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新。
图6所示实施例的关系型数据库更新装置对应地可用于执行图2所示方法实施例中的步骤,其实现原理和技术效果类似,此处不再赘述。
在一些实施例中,冗余舍弃模块63,具体用于根据所述初始请求队列中更新请求的数量,获取所述初始请求队列对应的操作频次;根据所述操作频次和预设的冗余阈值,确定冗余占比;在所述初始请求队列中以所述冗余占比确定冗余请求;将所述请求队列中的冗余请求舍弃,得到剩余请求队列。
在一些实施例中,冗余舍弃模块63,具体用于根据所述冗余占比,将所述初始请求队列排序靠前的更新请求确定为冗余请求,其中,所述初始请求队列中更新请求的顺序是按请求的获取时刻从前到后排序。
在一些实施例中,参见图7,是本申请实施例提供的另一种关系型数据库更新装置结构示意图。图7所示队列获取模块62,用于将所述多个更新请求划分为N个初始请求队列,N为大于或等于2的整数。
相应地,关系型数据库更新装置60还包括:行拆分模块65。
在所述更新执行模块64顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新之前,所述行拆分模块65用于将所述关系型数据库中的所述数据行进行拆分,得到M个拆分行,M为大于或等于2的整数。
在一些实施例中,更新执行模块64,具体用于将所述M个拆分行分配给所述N个初始请求队列对应的N个剩余请求队列执行更新;将更新后的M个拆分行合并,得到更新后的数据行。
在一些实施例中,拆分行的数量M与所述剩余请求队列的数量N一致。
在一些实施例中,请求获取模块61,具体用于在预设的处理周期内,获取与关系型数据库中相同的数据行对应的多个更新请求,其中,所述数据行为无一致性要求的数据类型。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
参见图8,是本申请实施例提供的一种用于实现关系型数据库更新方法的电子设备结构框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和/或低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI(图形用户界面)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。
存储器802即为本申请实施例所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请实施例所提供的关系型数据库更新的方法。本申请实施例的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请实施例所提供的关系型数据库更新的方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的关系型数据库更新的方法对应的程序指令/模块(例如包括附图6所示的请求获取模块61、队列获取模块62和冗余舍弃模块63,还可以包括附图7所示的行拆分模块65)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的关系型数据库更新的方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据关系型数据库更新的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至用于实现关系型数据库更新方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于实现关系型数据库更新方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与关系型数据库更新的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (16)
1.一种关系型数据库更新方法,其特征在于,包括:
获取与关系型数据库中相同的数据行对应的多个更新请求;
获取包含所述多个更新请求的初始请求队列;
将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列;
顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新。
2.根据权利要求1所述的方法,其特征在于,所述将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列,包括:
根据所述初始请求队列中更新请求的数量,获取所述初始请求队列对应的更新频次;
根据所述更新频次和预设的冗余阈值,确定冗余占比;
在所述初始请求队列中以所述冗余占比确定冗余请求;
将所述请求队列中的冗余请求舍弃,得到剩余请求队列。
3.根据权利要求2所述的方法,其特征在于,所述在所述初始请求队列中以所述冗余占比确定冗余请求,包括:
根据所述冗余占比,将所述初始请求队列排序靠前的更新请求确定为冗余请求,其中,所述初始请求队列中更新请求的顺序是按请求的获取时刻从前到后排序。
4.根据权利要求1至3任一所述的方法,其特征在于,所述获取包含所述多个更新请求的初始请求队列,包括:
将所述多个更新请求划分为N个初始请求队列,N为大于或等于2的整数;
在所述顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新之前,还包括:
将所述关系型数据库中的所述数据行进行拆分,得到M个拆分行,M为大于或等于2的整数。
5.根据权利要求4所述的方法,其特征在于,所述顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新,包括:
将所述M个拆分行分配给所述N个初始请求队列对应的N个剩余请求队列执行更新;
将更新后的M个拆分行合并,得到更新后的数据行。
6.根据权利要求5所述的方法,其特征在于,所述拆分行的数量M与所述剩余请求队列的数量N一致。
7.根据权利要求1至3任一所述的方法,其特征在于,所述获取与关系型数据库中相同的数据行对应的多个更新请求,包括:
在预设的处理周期内,获取与关系型数据库中相同的数据行对应的多个更新请求,其中,所述数据行为无一致性要求的数据类型。
8.一种关系型数据库更新装置,其特征在于,包括:
请求获取模块,用于获取与关系型数据库中相同的数据行对应的多个更新请求;
队列获取模块,用于获取包含所述多个更新请求的初始请求队列;
冗余舍弃模块,用于将所述初始请求队列中的部分更新请求舍弃,得到剩余请求队列;
更新执行模块,用于顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新。
9.根据权利要求8所述的装置,其特征在于,所述冗余舍弃模块,具体用于根据所述初始请求队列中更新请求的数量,获取所述初始请求队列对应的操作频次;根据所述操作频次和预设的冗余阈值,确定冗余占比;在所述初始请求队列中以所述冗余占比确定冗余请求;将所述请求队列中的冗余请求舍弃,得到剩余请求队列。
10.根据权利要求9所述的装置,其特征在于,所述冗余舍弃模块,具体用于根据所述冗余占比,将所述初始请求队列排序靠前的更新请求确定为冗余请求,其中,所述初始请求队列中更新请求的顺序是按请求的获取时刻从前到后排序。
11.根据权利要求8至10任一所述的装置,其特征在于,
所述队列获取模块,用于将所述多个更新请求划分为N个初始请求队列,N为大于或等于2的整数;
所述装置还包括:行拆分模块;
在所述更新执行模块顺序响应所述剩余请求队列中的更新请求,对所述数据行进行更新之前,所述行拆分模块用于将所述关系型数据库中的所述数据行进行拆分,得到M个拆分行,M为大于或等于2的整数。
12.根据权利要求11所述的装置,其特征在于,所述更新执行模块,具体用于将所述M个拆分行分配给所述N个初始请求队列对应的N个剩余请求队列执行更新;将更新后的M个拆分行合并,得到更新后的数据行。
13.根据权利要求12所述的装置,其特征在于,所述拆分行的数量M与所述剩余请求队列的数量N一致。
14.根据权利要求8至10任一所述的装置,其特征在于,所述请求获取模块,具体用于在预设的处理周期内,获取与关系型数据库中相同的数据行对应的多个更新请求,其中,所述数据行为无一致性要求的数据类型。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7任一所述的关系型数据库更新方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至7任一所述的关系型数据库更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010272594.7A CN111488366B (zh) | 2020-04-09 | 2020-04-09 | 关系型数据库更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010272594.7A CN111488366B (zh) | 2020-04-09 | 2020-04-09 | 关系型数据库更新方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488366A true CN111488366A (zh) | 2020-08-04 |
CN111488366B CN111488366B (zh) | 2023-08-01 |
Family
ID=71812690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010272594.7A Active CN111488366B (zh) | 2020-04-09 | 2020-04-09 | 关系型数据库更新方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488366B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029498A1 (en) * | 2009-07-10 | 2011-02-03 | Xkoto, Inc. | System and Method for Subunit Operations in a Database |
US8965861B1 (en) * | 2012-06-28 | 2015-02-24 | Amazon Technologies, Inc. | Concurrency control in database transactions |
CN105956166A (zh) * | 2016-05-19 | 2016-09-21 | 北京京东尚科信息技术有限公司 | 数据库读写方法和读写装置 |
CN107066463A (zh) * | 2016-10-28 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和服务器 |
CN107832401A (zh) * | 2017-11-01 | 2018-03-23 | 郑州云海信息技术有限公司 | 数据库数据访问方法、系统、装置及计算机可读存储介质 |
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
CN107918620A (zh) * | 2016-10-10 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
CN107992517A (zh) * | 2017-10-26 | 2018-05-04 | 深圳市金立通信设备有限公司 | 一种数据处理方法、服务器及计算机可读介质 |
US20180357291A1 (en) * | 2017-06-07 | 2018-12-13 | Sap Se | Dynamic admission control for database requests |
CN109597818A (zh) * | 2018-11-28 | 2019-04-09 | 优刻得科技股份有限公司 | 数据更新方法、装置、存储介质和设备 |
CN109710615A (zh) * | 2018-12-29 | 2019-05-03 | 江苏满运软件科技有限公司 | 数据库的访问管理方法、系统、电子设备和存储介质 |
CN110196884A (zh) * | 2019-05-31 | 2019-09-03 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110290217A (zh) * | 2019-07-01 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 数据请求的处理方法及装置、存储介质及电子装置 |
US10445322B1 (en) * | 2018-11-29 | 2019-10-15 | Capital One Services, Llc | Real-time processing of event-based streaming with NoSQL |
CN110427386A (zh) * | 2019-08-05 | 2019-11-08 | 广州华多网络科技有限公司 | 数据处理方法、装置及计算机存储介质 |
CN110457305A (zh) * | 2019-08-13 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 数据去重方法、装置、设备及介质 |
-
2020
- 2020-04-09 CN CN202010272594.7A patent/CN111488366B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029498A1 (en) * | 2009-07-10 | 2011-02-03 | Xkoto, Inc. | System and Method for Subunit Operations in a Database |
US8965861B1 (en) * | 2012-06-28 | 2015-02-24 | Amazon Technologies, Inc. | Concurrency control in database transactions |
CN105956166A (zh) * | 2016-05-19 | 2016-09-21 | 北京京东尚科信息技术有限公司 | 数据库读写方法和读写装置 |
CN107918620A (zh) * | 2016-10-10 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
CN107066463A (zh) * | 2016-10-28 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和服务器 |
US20180357291A1 (en) * | 2017-06-07 | 2018-12-13 | Sap Se | Dynamic admission control for database requests |
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
CN107992517A (zh) * | 2017-10-26 | 2018-05-04 | 深圳市金立通信设备有限公司 | 一种数据处理方法、服务器及计算机可读介质 |
CN107832401A (zh) * | 2017-11-01 | 2018-03-23 | 郑州云海信息技术有限公司 | 数据库数据访问方法、系统、装置及计算机可读存储介质 |
CN109597818A (zh) * | 2018-11-28 | 2019-04-09 | 优刻得科技股份有限公司 | 数据更新方法、装置、存储介质和设备 |
US10445322B1 (en) * | 2018-11-29 | 2019-10-15 | Capital One Services, Llc | Real-time processing of event-based streaming with NoSQL |
CN109710615A (zh) * | 2018-12-29 | 2019-05-03 | 江苏满运软件科技有限公司 | 数据库的访问管理方法、系统、电子设备和存储介质 |
CN110196884A (zh) * | 2019-05-31 | 2019-09-03 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110290217A (zh) * | 2019-07-01 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 数据请求的处理方法及装置、存储介质及电子装置 |
CN110427386A (zh) * | 2019-08-05 | 2019-11-08 | 广州华多网络科技有限公司 | 数据处理方法、装置及计算机存储介质 |
CN110457305A (zh) * | 2019-08-13 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 数据去重方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
HAO HU等: "CAAC: A Key-Value Database Performance Boosting Algorithm" * |
孙婷婷;祝永志;李佩;: "基于读写任务分发的数据库集群服务器的实现", no. 07 * |
Also Published As
Publication number | Publication date |
---|---|
CN111488366B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108549583B (zh) | 大数据处理方法、装置、服务器及可读存储介质 | |
CN111259205B (zh) | 一种图数据库遍历方法、装置、设备及存储介质 | |
CN114090223A (zh) | 访存请求调度方法、装置、设备以及存储介质 | |
CN111461343A (zh) | 模型参数更新方法及其相关设备 | |
CN112115113B (zh) | 数据存储系统、方法、装置、设备以及存储介质 | |
CN111459645A (zh) | 一种任务调度方法、装置和电子设备 | |
CN112559522A (zh) | 数据存储方法、装置、查询方法、电子设备及可读介质 | |
US11188532B2 (en) | Successive database record filtering on disparate database types | |
US20220244990A1 (en) | Method for performing modification task, electronic device and readable storage medium | |
CN111782357B (zh) | 标签控制方法及装置、电子设备和可读存储介质 | |
CN111488366B (zh) | 关系型数据库更新方法、装置、设备及存储介质 | |
CN111290714A (zh) | 数据读取方法和装置 | |
CN114610719B (zh) | 跨集群数据处理方法、装置、电子设备以及存储介质 | |
CN115905322A (zh) | 业务处理方法、装置、电子设备及存储介质 | |
CN112437125B (zh) | 信息并发处理方法、装置、电子设备及存储介质 | |
CN111459882B (zh) | 分布式文件系统的命名空间事务处理方法和装置 | |
CN113204382B (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
US20180067859A1 (en) | Selective allocation of cpu cache slices to database objects | |
CN111865683A (zh) | 虚拟网关版本灰度发布方法、装置、设备以及存储介质 | |
CN111292223A (zh) | 图计算的处理方法、装置、电子设备及存储介质 | |
CN112084204A (zh) | 浏览数据处理方法、装置、终端及存储介质 | |
CN111752695A (zh) | 下线方法、装置、设备以及存储介质 | |
CN115599828A (zh) | 一种信息处理方法、装置、设备、存储介质 | |
CN115794555A (zh) | 一种业务日志处理方法、装置、设备及存储介质 | |
CN117591249A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |