CN117785878A - 数据库表重命名与查询方法、装置及设备 - Google Patents

数据库表重命名与查询方法、装置及设备 Download PDF

Info

Publication number
CN117785878A
CN117785878A CN202311814589.4A CN202311814589A CN117785878A CN 117785878 A CN117785878 A CN 117785878A CN 202311814589 A CN202311814589 A CN 202311814589A CN 117785878 A CN117785878 A CN 117785878A
Authority
CN
China
Prior art keywords
database
target table
target
name
query
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
Application number
CN202311814589.4A
Other languages
English (en)
Inventor
岳红波
王建华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN202311814589.4A priority Critical patent/CN117785878A/zh
Publication of CN117785878A publication Critical patent/CN117785878A/zh
Pending legal-status Critical Current

Links

Abstract

本申请提供一种数据库表重命名与查询方法、装置及设备,可用于数据库技术领域。上述方法包括:在接收到当前事务对数据库中目标表的重命名操作时,对目标表添加自定义排他锁;该自定义排他锁允许多个事务对目标表的并发查询操作,但不允许除当前事务之外的其它事务对目标表的写操作;基于上述重命名操作,修改目标表的名称;将目标表修改后的名称保存到数据库对应的系统表中。本申请解决了现有技术中在高并发查询业务场景下,数据库表重命名操作难以快速完成的技术问题。

Description

数据库表重命名与查询方法、装置及设备
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库表重命名与查询方法、装置及设备。
背景技术
在数据库中,对于表对象的重命名,通常需要先获取该表的排他锁,该排他锁会阻止其他事务对该表进行并发修改,确保在重命名操作期间表是独占的,这样可以防止其他操作(如写入、删除等)干扰重命名过程,确保重命名操作可以顺利进行。
然而,虽然上述重命名操作的执行耗时很短,但是在高并发的业务系统中,获取排他锁需要很长的等待时间,导致上述重命名操作难以快速完成,由此会对一些业务系统的性能和响应时间产生负面影响。
发明内容
本申请提供一种数据库表重命名与查询方法、装置及设备,可以解决现有技术中在高并发查询业务场景下,数据库表重命名操作难以快速完成的技术问题。
第一方面,本申请提供一种数据库表重命名方法,该方法包括:
在接收到当前事务对数据库中目标表的重命名操作时,对所述目标表添加自定义排他锁;所述自定义排他锁允许多个事务对所述目标表的并发查询操作,但不允许除所述当前事务之外的其它事务对所述目标表的写操作;
基于所述重命名操作,修改所述目标表的名称;
将所述目标表修改后的名称保存到所述数据库对应的系统表中。
在一些实施例中,所述方法还包括:
在修改所述目标表的名称之后,向已与所述数据库建立连接的各个事务广播所述目标表的操作信息,所述操作信息中包括所述目标表修改后的名称。
第二方面,本申请提供一种数据库表查询方法,该方法包括:
在接收到数据库管理系统广播的数据库中目标表的操作信息时,确定当前是否存在对所述目标表的查询操作;其中,所述操作信息中包括所述目标表修改后的名称;
若当前存在对所述目标表的查询操作,且所述查询操作已获取并缓存了所述目标表的名称,则将所述操作信息暂存在连接上下文中;
当检测到基于缓存的所述目标表的名称执行所述查询操作完成后,根据所述连接上下文中的所述操作信息,更新缓存中所述目标表的名称。
在一些实施例中,所述方法还包括:
若当前存在对所述目标表的查询操作,且所述查询操作尚未获取到所述目标表的名称,则根据所述操作信息,从所述数据库对应的系统表中加载所述目标表修改后的名称;
基于加载到的所述目标表修改后的名称,执行所述查询操作。
在一些实施例中,所述方法还包括:
基于加载到的所述目标表修改后的名称,更新缓存中所述目标表的名称信息。
第三方面,本申请提供一种数据库表重命名装置,该装置包括:
锁添加模块,用于在接收到当前事务对数据库中目标表的重命名操作时,对所述目标表添加自定义排他锁;所述自定义排他锁允许多个事务对所述目标表的并发查询操作,但不允许除所述当前事务之外的其它事务对所述目标表的写操作;
处理模块,用于基于所述重命名操作,修改所述目标表的名称;
保存模块,用于将所述目标表修改后的名称保存到所述数据库对应的系统表中。
第四方面,本申请提供一种数据库表查询装置,该装置包括:
确定模块,用于在接收到数据库管理系统广播的数据库中目标表的操作信息时,确定当前是否存在对所述目标表的查询操作;其中,所述操作信息中包括所述目标表修改后的名称;
保存模块,用于若当前存在对所述目标表的查询操作,且所述查询操作已获取并缓存了所述目标表的名称,则将所述操作信息暂存在连接上下文中;
更新模块,用于当检测到基于缓存的所述目标表的名称执行所述查询操作完成后,根据所述连接上下文中的所述操作信息,更新缓存中所述目标表的名称。
第五方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器存储的计算机执行指令,以实现如第一方面提供的数据库表重命名方法;或者实现如第二方面提供的数据库表查询方法。
第六方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,实现如第一方面提供的数据库表重命名方法;或者实现如第二方面提供的数据库表查询方法。
第七方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现如第一方面提供的数据库表重命名方法;或者实现如第二方面提供的数据库表查询方法。
本申请提供的数据库表重命名方法,通过将重命名数据库表对象所需要获取的排他锁降级为一种受限的排他锁,该排他锁允许多个事务对目标表的并发查询操作,但不允许除当前事务之外的其它事务对目标表的写操作,从而使得重命名数据库对象不需要长时间等待排他锁,在高并发查询压力下,重命名表操作也能快速完成。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例中提供的一种数据库表重命名方法的步骤流程示意图;
图2为本申请实施例中提供的一种数据库表查询方法的步骤流程示意图;
图3为本申请实施例中提供的一种数据库表查询方法的时序流程示意图一;
图4为本申请实施例中提供的一种数据库表查询方法的时序流程示意图二;
图5为本申请实施例中提供的一种数据库表重命名装置的程序模块示意图;
图6为本申请实施例中提供的一种数据库表查询装置的程序模块示意图;
图7为本申请实施例提供的一种电子设备的硬件结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中的公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请实施例中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
以下对本申请实施例中涉及的部分术语进行解释:
表对象:是数据库中的基本组成部分,与表格类似,由行(Row)和列(Column)组成。每列又称为一个字段,每列的标题称为字段名;行则包含了若干列的信息项。每个表中通常都有一个主关键字,用于唯一地确定一条记录。除了表对象外,数据库中还包括其他对象,如索引(Index)、视图(View)、图表(Diagram)、缺省值(Default)、规则(Rule)、触发器(Trigger)、存储过程(Stored Procedure)等,它们共同构成了数据库的结构和功能。
事务:即数据库事务,是指对数据库的一系列操作组成的逻辑工作单元。事务的使用可以确保数据库操作的完整性和一致性。例如,在银行转账过程中,如果将转出账户的金额减少,但转入账户的金额没有增加,这将导致数据不一致。通过使用事务,可以将转出和转入操作作为一个事务,要么全部执行成功,要么全部回滚,从而保证转账操作的一致性。
排他锁:也称为写锁或独占锁,当事务T对某张表加上了表级排他锁时,表示事务T可以对该表中的所有记录进行查询和修改,而其他事务只能查询不能修改;并且其他事务不能再往这张表加任何类型的表级锁,也不能给表中的数据行加任何的行级锁,直到事务T释放了表级排他锁。
在数据库中,对于表对象的重命名,通常需要先获取该表的排他锁,防止其他操作(如写入、删除等)干扰重命名过程,确保重命名操作可以顺利进行。然而,虽然上述重命名操作的执行耗时很短,但是在高并发的业务系统中,获取排他锁需要很长的等待时间,导致上述重命名操作难以快速完成,由此会对一些业务系统的性能和响应时间产生负面影响。
面对上述技术问题,本申请实施例中提供了一种数据库表重命名方法,将重命名数据库表对象所需要获取的排他锁降级为一种受限排他锁,重命名数据库对象不需要长时间等待完全排他锁,使得在高并发查询压力下重命名表操作能快速完成。
以下通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,以下几个实施例可以单独存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再重复说明。
参照图1,图1为本申请实施例中提供的一种数据库表重命名方法的步骤流程示意图,在本申请一些实施例中,上述数据库表重命名方法包括:
S101、在接收到当前事务对数据库中目标表的重命名操作时,对目标表添加自定义排他锁;该自定义排他锁允许多个事务对目标表的并发查询操作,但不允许除当前事务之外的其它事务对目标表的写操作。
在本申请一些实施例中,数据库管理系统在接收到任意事务对数据库中目标表的重命名操作时,可以对该目标表添加一个自定义排他锁,该自定义排他锁为一个受限的排他锁,即允许多个事务对目标表的并发查询操作,但不允许除当前事务之外的其他事务对目标表的写操作。
可以理解的是,通过添加上述自定义排他锁,可以限制对目标表的写操作,从而确保在重命名操作期间不会干扰其他应用程序的查询操作。
其中,对数据库表的并发查询操作是指多个事务同时查询同一张表的操作。
S102、基于上述重命名操作,修改目标表的名称。
在一些实施方式中,可以基于上述重命名操作,通过执行相应的SQL语句来实现修改目标表的名称。
S103、将目标表修改后的名称保存到数据库对应的系统表中。
在一些实施方式中,可以包括以下步骤:
先确定目标表修改后的名称:在执行重命名操作后,目标表的名称已经修改为新的名称。
查询数据库中的系统表:找到与目标表相关的系统表,这些系统表通常存储了表的结构、元数据等信息。
更新系统表中的表名信息:使用SQL语句或数据库管理系统的API,将目标表修改后的名称更新到系统表中,这通常涉及到更新表名字段的值。
本申请提供的数据库表重命名方法,通过将重命名数据库表对象所需要获取的排他锁降级为一种受限的排他锁,该排他锁允许多个事务对目标表的并发查询操作,但不允许除当前事务之外的其它事务对目标表的写操作,从而使得重命名数据库对象不需要长时间等待排他锁,在高并发查询压力下,重命名表操作也能快速完成。
基于上述实施例中描述的内容,在本申请一些实施例中,在修改目标表的名称之后,可以向已与上述数据库建立连接的各个事务广播目标表的操作信息,该操作信息中包括目标表修改后的名称。
在一些实施方式中,在向已与上述数据库建立连接的各个事务广播目标表的操作信息后,可以提交当前事务。
在一些实施方式中,广播上述操作信息的方式可以根据使用的数据库管理系统和通信机制而有所不同。一些系统可能会使用事件触发机制,当表名变更时触发一个事件,将操作信息广播给所有连接的事务。其他系统可能会使用轮询或通知机制,定期检查表名的变更情况并广播给相关事务。
本申请提供的数据库表重命名方法,在修改目标表的名称之后,以广播的形式给其他所有与数据库建立连接的各个事务发送当前重命名操作的信息,由此可以让与数据库建立连接的事务了解目标表名称的变更。这样,在后续的操作中,事务可以使用新的表名进行查询和操作,确保与数据库的交互是基于最新的表名。
基于上述实施例中描述的内容,参照图2,图2为本申请实施例中提供的一种数据库表查询方法的步骤流程示意图,在本申请一些实施例中,上述数据库表查询方法包括:
S201、接收数据库管理系统广播的数据库中目标表的操作信息。
其中,上述操作信息中包括上述目标表修改后的名称。
S202、确定当前是否存在对目标表的查询操作。若是,则执行S203、若否,则结束当前流程。
S203、确定查询操作是否已获取并缓存了目标表的名称。若是,则执行S204-S206;若否,则执行S207-S208。
S204、将操作信息暂存在连接上下文中。
S205、基于缓存的目标表的名称执行查询操作。
S206、在查询操作执行完成后,根据连接上下文中的操作信息,更新缓存中目标表的名称。
S207、根据操作信息,从数据库对应的系统表中加载目标表修改后的名称。
S208、基于加载到的目标表修改后的名称,执行查询操作。
在本申请实施例中,若当前存在对目标表的查询操作,且该查询操作已获取并缓存了目标表的名称,则将该操作信息暂存在连接上下文中,当检测到基于缓存的目标表的名称执行查询操作完成后,根据上述连接上下文中的操作信息,更新缓存中目标表的名称;若当前存在对目标表的查询操作,且该查询操作尚未获取到目标表的名称,则根据上述操作信息,从数据库对应的系统表中加载目标表修改后的名称,并基于加载到的目标表修改后的名称,执行上述查询操作。
参照图3,图3为本申请实施例中提供的一种数据库表查询方法的时序流程示意图一,在本申请一些实施例中,上述数据库表查询方法包括:
S301、接收到对目标表的查询操作。
S302、获取并缓存目标表的元信息;该元信息中包括目标表的名称。
S303、接收到数据库管理系统广播的数据库中目标表的操作信息。
S304、将操作信息暂存在连接上下文中。
S305、从缓存中获取目标表的元信息。
S306、基于获取的元信息执行查询操作。
S307、在查询操作执行完成时,根据连接上下文中的操作信息,更新缓存中目标表的名称。
S308、提交当前事务。
在本申请实施例中,若当前事务在收到目标表重命名的操作信息时,已经查询并缓存了目标表的元信息,则将收到的操作信息暂存在连接上下文中,后续对于目标表元信息的访问,均从本地缓存中获取,待到本事务查询操作执行结束时,根据连接上下文中的操作信息,更新缓存中目标表的名称,后续的事务将需要通过目标表修改后的名称进行查询。
参照图4,图4为本申请实施例中提供的一种数据库表查询方法的时序流程示意图二,在本申请一些实施例中,上述数据库表查询方法包括:
S401、接收到对目标表的查询操作。
S402、接收到数据库管理系统广播的数据库中目标表的操作信息。
S403、从数据库对应的系统表中加载目标表的元信息;该元信息中包括目标表修改后的名称。
S404、基于加载到的目标表修改后的名称,执行查询操作。
S405、提交当前事务。
在本申请实施例中,若当前事务在收到目标表重命名的操作信息时,尚未开始访问被修改的目标表,则根据收到的操作信息清理当前事务对于目标表的缓存信息,后续重新从系统表中加载目标表的元信息,由于该元信息中包括目标表修改后的名称,因此当前事务可以通过新的表名进行查询。
本申请实施例提供的数据库表查询方法,并发事务可以根据接收到的目标表重命名的操作信息的时间节点,来决定不同的处理策略,包括及时响应或者延后到事务提交时再处理,由此可以保持数查询据的一致性和完整性。
基于上述实施例中描述的内容,本申请实施例中还提供一种数据库表重命名装置,参照图5,图5为本申请实施例中提供的一种数据库表重命名装置的程序模块示意图,在一些实施方式中,上述数据库表重命名装置50包括:
锁添加模块501,用于在接收到当前事务对数据库中目标表的重命名操作时,对所述目标表添加自定义排他锁;所述自定义排他锁允许多个事务对所述目标表的并发查询操作,但不允许除所述当前事务之外的其它事务对所述目标表的写操作。
处理模块502,用于基于所述重命名操作,修改所述目标表的名称。
保存模块503,用于将所述目标表修改后的名称保存到所述数据库对应的系统表中。
本申请提供的数据库表重命名装置,通过将重命名数据库表对象所需要获取的排他锁降级为一种受限的排他锁,该排他锁允许多个事务对目标表的并发查询操作,但不允许除当前事务之外的其它事务对目标表的写操作,从而使得重命名数据库对象不需要长时间等待排他锁,在高并发查询压力下,重命名表操作也能快速完成。
在一些实施方式中,上述装置还包括通信模块,用于:
在修改所述目标表的名称之后,向已与所述数据库建立连接的各个事务广播所述目标表的操作信息,所述操作信息中包括所述目标表修改后的名称。
需要说明的是,本申请实施例中锁添加模块501、处理模块502以及保存模块503具体执行的内容可以参阅上述实施例中描述的数据库表重命名方法中的各个步骤,此处不做赘述。
基于上述实施例中描述的内容,本申请实施例中还提供一种数据库表查询装置,参照图6,图6为本申请实施例中提供的一种数据库表查询装置的程序模块示意图,在一些实施方式中,上述数据库表查询装置60包括:
确定模块601,用于在接收到数据库管理系统广播的数据库中目标表的操作信息时,确定当前是否存在对所述目标表的查询操作;其中,所述操作信息中包括所述目标表修改后的名称。
保存模块602,用于若当前存在对所述目标表的查询操作,且所述查询操作已获取并缓存了所述目标表的名称,则将所述操作信息暂存在连接上下文中。
更新模块603,用于当检测到基于缓存的所述目标表的名称执行所述查询操作完成后,根据所述连接上下文中的所述操作信息,更新缓存中所述目标表的名称。
本申请实施例提供的数据库表查询方法,并发事务可以根据接收到的目标表重命名的操作信息的时间节点,来决定不同的处理策略,包括及时响应或者延后到事务提交时再处理,由此可以保持数查询据的一致性和完整性。
在一些实施方式中,上述装置还包括:
加载模块,用于:若当前存在对所述目标表的查询操作,且所述查询操作尚未获取到所述目标表的名称,则根据所述操作信息,从所述数据库对应的系统表中加载所述目标表修改后的名称。
执行模块,用于基于加载到的所述目标表修改后的名称,执行所述查询操作。
在一些实施方式中,上述更新模块603还用于:
基于加载到的所述目标表修改后的名称,更新缓存中所述目标表的名称信息。
需要说明的是,本申请实施例中确定模块601、保存模块602以及更新模块603具体执行的内容可以参阅上述实施例中描述的数据库表重命名方法中的各个步骤,此处不做赘述。
进一步的,基于上述实施例中所描述的内容,本申请实施例中还提供了一种电子设备,该电子设备包括至少一个处理器和存储器;其中,存储器存储计算机执行指令;上述至少一个处理器执行存储器存储的计算机执行指令,以实现如上述实施例中描述的数据库表重命名方法或数据库表查询方法中的各个步骤。
为了更好的理解本申请实施例,参照图7,图7为本申请实施例提供的一种电子设备的硬件结构示意图。
如图7所示,本实施例的电子设备70包括:处理器701以及存储器702;其中:
存储器702,用于存储计算机执行指令;
处理器701,用于执行存储器存储的计算机执行指令,以实现如上述实施例中描述的数据库表重命名方法或数据库表查询方法中的各个步骤。
可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起。
当存储器702独立设置时,该设备还包括总线703,用于连接所述存储器702和处理器701。
本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上述实施例中描述的数据库表重命名方法或数据库表查询方法中的各个步骤。
本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现如上述实施例中描述的数据库表重命名方法或数据库表查询方法中的各个步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速存储器,也可能还包括非易失性存储,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种数据库表重命名方法,其特征在于,所述方法包括:
在接收到当前事务对数据库中目标表的重命名操作时,对所述目标表添加自定义排他锁;所述自定义排他锁允许多个事务对所述目标表的并发查询操作,但不允许除所述当前事务之外的其它事务对所述目标表的写操作;
基于所述重命名操作,修改所述目标表的名称;
将所述目标表修改后的名称保存到所述数据库对应的系统表中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在修改所述目标表的名称之后,向已与所述数据库建立连接的各个事务广播所述目标表的操作信息,所述操作信息中包括所述目标表修改后的名称。
3.一种数据库表查询方法,其特征在于,所述方法包括:
在接收到数据库管理系统广播的数据库中目标表的操作信息时,确定当前是否存在对所述目标表的查询操作;其中,所述操作信息中包括所述目标表修改后的名称;
若当前存在对所述目标表的查询操作,且所述查询操作已获取并缓存了所述目标表的名称,则将所述操作信息暂存在连接上下文中;
当检测到基于缓存的所述目标表的名称执行所述查询操作完成后,根据所述连接上下文中的所述操作信息,更新缓存中所述目标表的名称。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若当前存在对所述目标表的查询操作,且所述查询操作尚未获取到所述目标表的名称,则根据所述操作信息,从所述数据库对应的系统表中加载所述目标表修改后的名称;
基于加载到的所述目标表修改后的名称,执行所述查询操作。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
基于加载到的所述目标表修改后的名称,更新缓存中所述目标表的名称信息。
6.一种数据库表重命名装置,其特征在于,所述装置包括:
锁添加模块,用于在接收到当前事务对数据库中目标表的重命名操作时,对所述目标表添加自定义排他锁;所述自定义排他锁允许多个事务对所述目标表的并发查询操作,但不允许除所述当前事务之外的其它事务对所述目标表的写操作;
处理模块,用于基于所述重命名操作,修改所述目标表的名称;
保存模块,用于将所述目标表修改后的名称保存到所述数据库对应的系统表中。
7.一种数据库表查询装置,其特征在于,所述装置包括:
确定模块,用于在接收到数据库管理系统广播的数据库中目标表的操作信息时,确定当前是否存在对所述目标表的查询操作;其中,所述操作信息中包括所述目标表修改后的名称;
保存模块,用于若当前存在对所述目标表的查询操作,且所述查询操作已获取并缓存了所述目标表的名称,则将所述操作信息暂存在连接上下文中;
更新模块,用于当检测到基于缓存的所述目标表的名称执行所述查询操作完成后,根据所述连接上下文中的所述操作信息,更新缓存中所述目标表的名称。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器存储的计算机执行指令,以实现如权利要求1-2任一项所述的数据库表重命名方法;或者实现如权利要求3-5任一项所述的数据库表查询方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,实现如权利要求1-2任一项所述的数据库表重命名方法;或者实现如权利要求3-5任一项所述的数据库表查询方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-2任一项所述的数据库表重命名方法;或者实现如权利要求3-5任一项所述的数据库表查询方法。
CN202311814589.4A 2023-12-26 2023-12-26 数据库表重命名与查询方法、装置及设备 Pending CN117785878A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311814589.4A CN117785878A (zh) 2023-12-26 2023-12-26 数据库表重命名与查询方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311814589.4A CN117785878A (zh) 2023-12-26 2023-12-26 数据库表重命名与查询方法、装置及设备

Publications (1)

Publication Number Publication Date
CN117785878A true CN117785878A (zh) 2024-03-29

Family

ID=90382933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311814589.4A Pending CN117785878A (zh) 2023-12-26 2023-12-26 数据库表重命名与查询方法、装置及设备

Country Status (1)

Country Link
CN (1) CN117785878A (zh)

Similar Documents

Publication Publication Date Title
CN108363806B (zh) 数据库的多版本并发控制方法、装置、服务器及存储介质
US20220413706A1 (en) Data Storage Method, Apparatus and Storage System
EP3117348B1 (en) Systems and methods to optimize multi-version support in indexes
JP5010601B2 (ja) 直接更新ソフトウェアトランザクショナルメモリ
CN111090663B (zh) 事务并发控制方法、装置、终端设备及介质
CN109086388B (zh) 区块链数据存储方法、装置、设备及介质
US20190129894A1 (en) Database Transaction Processing Method, Client, and Server
US7849060B2 (en) System and method for managing log information for transaction
CN109690522B (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
US10776345B2 (en) Efficiently updating a secondary index associated with a log-structured merge-tree database
CN110018790B (zh) 一种保证持久性内存中数据崩溃一致性的方法及系统
US9514170B1 (en) Priority queue using two differently-indexed single-index tables
CN112148736A (zh) 缓存数据的方法、设备及存储介质
CN113220490A (zh) 异步写回持久化内存的事务持久化方法及系统
US20110099347A1 (en) Managing allocation and deallocation of storage for data objects
US20230090835A1 (en) Reducing requests using probabilistic data structures
CN117785878A (zh) 数据库表重命名与查询方法、装置及设备
CN114691307A (zh) 事务处理方法及计算机系统
CN112395215B (zh) DRAM-less固态硬盘映射表管理方法、装置、计算机设备及存储介质
CN114385657A (zh) 数据存储方法、装置及存储介质
CN114328500A (zh) 一种数据访问方法、装置、设备及计算机可读存储介质
CN115794842B (zh) 数据处理方法、装置、电子设备及介质
US11526474B2 (en) Reducing requests using probabilistic data structures
US20060143398A1 (en) Method and apparatus for least recently used (LRU) software cache
CN116107810A (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