本发明专利技术提供了一种表结构的修改方法、存储介质及设备。该表结构的修改方法包括:对待修改的目标表加变更锁;将所述目标表的并发操作信息记录至日志表中;创建临时表,根据预置的修改类型修改所述临时表的结构;将所述目标表的数据拷贝至所述临时表;升级所述变更锁为独占锁;根据所述日志表中的并发操作信息修改所述临时表的数据;调换所述目标表与所述临时表的信息。本发明专利技术的优点是可以提高数据库的并发操作能力,降低业务阻塞时长,改善用户的使用体验。体验。体验。
【技术实现步骤摘要】
表结构的修改方法、存储介质及设备
[0001]本专利技术涉及数据库
,特别是涉及一种表结构的修改方法、存储介质及设备。
技术介绍
[0002]随着数据量的变化、业务的发展,数据架构的调整,特别是表结构的变更变的越来越常见。现有技术中,通过alter table之类的DDL语句即可完成。然而当执行alter table语句时,数据库会对目标表加独占锁,阻塞该表上的所有操作。当表中数据量较为庞大时,阻塞时间将会相当长,导致与该表相关的服务长时间不可用,严重影响用户的使用体验,因此还有待改善。
技术实现思路
[0003]本专利技术的一个目的是要提供一种能够克服上述问题或者部分地解决上述问题的表结构的修改方法、存储介质及设备。
[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]图1是根据本专利技术一个实施例的表结构的修改方法的流程图;
[0040]图2是根据本专利技术一个实施例的表结构的修改方法中将目标表的并发操作信息记录至日志表中的步骤之前的示意性流程图;
[0041]图3是根据本专利技术一个实施例的表结构的修改方法中将目标表的数据拷贝至临时
表的步骤的流程图;
[0042]图4是根据本专利技术一个实施例的机器可读存储介质的示意图;
[0043]图5是根据本专利技术一个实施例的计算机设备的示意图。
具体实施方式
[0044]本领域技术人员应当理解的是,下文所描述的实施例仅仅是本专利技术的一部分实施例,而不是本专利技术的全部实施例,该一部分实施例旨在用于解释本专利技术的技术原理,并非用于限制本专利技术的保护范围。基于本专利技术提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本专利技术的保护范围之内。
[0045]需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
[0046]图1是根据本专利技术一个可选实施例的表结构的修改方法的流程图,参照图1,本专利技术的表结构的修改方法至少包括以下步骤S102至步骤S114。
[0047]步骤S102,对待修改的目标表加变更锁。
[0048]步骤S104,将目标表的并发操作信息记录至日志表中。
[0049]步骤S106,创建临时表,根据预置的修改类型修改临时表的结构。
[0050]步骤S108,将目标表的数本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种表结构的修改方法,包括:对待修改的目标表加变更锁;将所述目标表的并发操作信息记录至日志表中;创建临时表,根据预置的修改类型修改所述临时表的结构;将所述目标表的数据拷贝至所述临时表;升级所述变更锁为独占锁;根据所述日志表中的并发操作信息修改所述临时表的数据;调换所述目标表与所述临时表的信息。2.根据权利要求1所述的表结构的修改方法,其中,所述将所述目标表的数据拷贝至所述临时表的步骤包括:扫描所述目标表的历史快照得到备份数据;根据所述临时表的结构对所述备份数据进行数据处理;将处理后的备份数据插入至所述临时表。3.根据权利要求2所述的表结构的修改方法,其中,根据所述临时表的结构对所述备份数据进行数据处理的步骤包括:根据所述临时表的结构对所述备份数据的各行数据相应地进行类型转换、投影或默认值填充。4.根据权利要求1所述的表结构的修改方法,其中,在将所述目标表的数据拷贝至所述临时表的步骤之前,还包括:判断修改所述目标表的所有事务是否结束;若是,将所述目标表的数据拷贝至所述临时表。5.根据权利要求1所述的表结构的修改方法,其中,所述并发操作信息包括插入操作、更新操作和删除操作,根据所述日志表中的并发操作信息修改所述临时表的数据...
【专利技术属性】
技术研发人员:岳红波,王建华,
申请(专利权)人:北京人大金仓信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。