一种数据库空间回收方法技术

技术编号:37868832 阅读:13 留言:0更新日期:2023-06-15 20:58
本申请涉及一种数据库空间回收方法、装置、计算机设备和存储介质。所述方法包括:响应于针对目标数据库的数据更新操作,获取关联的第一数据库表,以及匹配的更新数据;在数据更新操作表征修改操作的情况下,将用于对原始数据进行修改的更新数据,写入预先创建的与第一数据库表结构相同的第二数据库表,并在第一数据库表中将原始数据标记为可回收空间;在数据更新操作表征新增操作的情况下,将用于在第一数据库表中新增的更新数据,写入第二数据库表;在目标数据库满足数据更新条件的情况下,将第二数据库表写入第一数据库表,并回收第一数据库表中标记的可回收空间,以得到更新后的第一数据库表。采用本方法能提高数据库更新的智能性。智能性。智能性。

【技术实现步骤摘要】
一种数据库空间回收方法


[0001]本申请涉及数据处理
,特别是涉及一种数据库空间回收方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]随着数据处理技术的发展,出现了一种对数据库中的数据进行更新的方法,该方法可以通过数据库 Vacuum操作来实现,该方法在数据库中数据删除或更新过程中,数据占用的空间并不会立即被释放,而是被标记为可回收空间,之后则可以Vacuum 操作将记为可回收空间的数据从数据库中删除,并将空闲空间的信息保存到一个系统表中,同时还可以将数据块中的有效数据向前移动,以填补已删除或更新数据所留下的空洞,以提高数据库的存储效率。
[0003]然而,上述通过Vacuum 操作实现的数据库更新,由于 Vacuum 操作需要在数据库中进行大量的 I/O 操作,因此可能会占用大量的系统资源,导致数据库的响应时间变慢。并且Vacuum 操作会生成临时文件,这些文件需要占用一定的磁盘空间,当磁盘空间不足时,Vacuum 操作可能会失败,从而影响到数据库的正常运行。另外,Vacuum 操作需要在数据库停机期间进行,这会影响到数据库的正常运行。可见,现有技术中通过Vacuum操作实现的数据库更新方式不够智能。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种数据库空间回收方法、装置、计算机设备和计算机可读存储介质。
[0005]第一方面,本申请提供了一种数据库空间回收方法,所述方法包括:响应于针对目标数据库的数据更新操作,获取所述目标数据库关联的第一数据库表,以及所述数据更新操作相匹配的更新数据;在所述数据更新操作表征数据修改操作的情况下,将用于对所述第一数据库表中存储的原始数据进行修改的更新数据,写入预先创建的与所述第一数据库表结构相同的第二数据库表,并在所述第一数据库表中将所述原始数据标记为可回收空间;在所述数据更新操作表征数据新增操作的情况下,将用于在所述第一数据库表中新增数据的更新数据,写入所述第二数据库表;在所述目标数据库满足预先设定的数据更新条件的情况下,将所述第二数据库表写入所述第一数据库表,并回收所述第一数据库表中标记的所述可回收空间,以得到更新后的第一数据库表。
[0006]在其中一个实施例中,所述将所述第二数据库表写入所述第一数据库表,并回收所述第一数据库表中标记的所述可回收空间,以得到更新后的第一数据库表,包括:对所述第一数据库表进行备份处理,得到第一备份数据库表,以及对所述第二数据库表进行备份处理,得到第二备份数据库表;将所述第二备份数据库表写入所述第一备份数据库表,并回
收所述第一备份数据库表中标记的所述可回收空间,得到更新后的第一备份数据库表;根据所述更新后的第一备份数据库表,得到所述更新后的第一数据库表。
[0007]在其中一个实施例中,所述对所述第一数据库表进行备份处理,得到第一备份数据库表,以及对所述第二数据库表进行备份处理,得到第二备份数据库表,包括:对所述第一数据库表进行备份处理,得到第一备份数据库表以及第一原始备份表,以及对所述第二数据库表进行备份处理,得到第二备份数据库表以及第二原始备份表;所述根据所述更新后的第一备份数据库表,得到所述更新后的第一数据库表,包括:比对所述第一数据库表以及所述第一原始备份表,获取所述第一数据库表与所述第一原始备份表的第一差异数据,以及比对所述第二数据库表以及所述第二原始备份表,获取所述第二数据库表与所述第二原始备份表的第二差异数据;将所述第一差异数据以及所述第二差异数据写入所述更新后的第一备份数据库表,得到所述更新后的第一数据库表。
[0008]在其中一个实施例中,所述将所述第一差异数据以及所述第二差异数据写入所述更新后的第一备份数据库表,得到所述更新后的第一数据库表,包括:将所述第一差异数据以及所述第二差异数据写入所述更新后的第一备份数据库表,得到待校验数据库表;对所述待校验数据库表进行一致性校验,若所述待校验数据库表的一致性校验结果为校验通过,则对所述目标数据库进行数据增量备份,并将所述待校验数据库表作为所述更新后的第一数据库表。
[0009]在其中一个实施例中,所述对所述待校验数据库表进行一致性校验之后,还包括:若所述待校验数据库表的一致性校验结果为校验不通过,则将所述待校验数据库表还原为所述第一原始备份表,并将还原后的数据库表作为新的第一备份数据库表,返回执行将所述第二备份数据库表写入所述第一备份数据库表,并回收所述第一备份数据库表中标记的所述可回收空间,得到更新后的第一备份数据库表的步骤,直到得到的待校验数据库表的一致性校验结果为校验通过。
[0010]在其中一个实施例中,所述将所述第一差异数据以及所述第二差异数据写入所述更新后的第一备份数据库表,得到所述更新后的第一数据库表之后,还包括:将所述第二数据库表、所述第一备份数据库表以及第一原始备份表、所述第二备份数据库表以及第二原始备份表进行删除处理,并创建与所述更新后的第一数据库表的结构相同的空白数据库表,作为与所述更新后的第一数据库表结构相同的更新后的第二数据库表。
[0011]在其中一个实施例中,所述数据更新操作还包括数据删除操作;所述在所述目标数据库满足预先设定的数据更新条件的情况下,将所述第二数据库表写入所述第一数据库表之前,还包括:在所述数据更新操作表征数据删除操作的情况下,在所述第一数据库表中将与所述数据删除操作对应的待删除数据标记为所述可回收空间。
[0012]在其中一个实施例中,所述数据更新条件包括更新时间条件;所述在所述目标数据库满足预先设定的数据更新条件的情况下,将所述第二数据库表写入所述第一数据库表,并回收所述第一数据库表中标记的所述可回收空间,以得到更新后的第一数据库表,包括:在当前时间满足所述更新时间条件的情况下,将所述第二数据库表写入所述第一数据库表,并回收所述第一数据库表中标记的所述可回收空间,以得到更新后的第一数据库表。
[0013]在其中一个实施例中,所述响应于针对目标数据库的数据更新操作,获取所述目标数据库关联的第一数据库表之前,还包括:响应于用户账户针对所述目标数据库的登录
操作,获取所述登录操作对应的登录信息;对所述登录信息进行身份验证,若所述登录信息的身份验证结果为验证通过,则接收所述用户账户对所述目标数据库执行的数据库操作;所述响应于针对目标数据库的数据更新操作,获取所述目标数据库关联的第一数据库表,以及所述数据更新操作相匹配的更新数据,包括:若所述数据库操作表征数据更新操作,则获取所述目标数据库关联的第一数据库表,以及所述数据更新操作相匹配的更新数据。
[0014]在其中一个实施例中,所述接收所述用户账户对所述目标数据库执行的数据库操作之后,还包括:若所述数据库操作表征数据查询操作,则从所述第一数据库表以及所述第二数据库表中获取所述数据查询操作相匹配的待查询数据,并将所述待查询数据返回所述用户账户。
[0015]第二方面,本申请还提供了一种数据库空间回收装置,所述装置包括:更新数据获取模块,用于响应于针本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库空间回收方法,其特征在于,所述方法包括:响应于针对目标数据库的数据更新操作,获取所述目标数据库关联的第一数据库表,以及所述数据更新操作相匹配的更新数据;在所述数据更新操作表征数据修改操作的情况下,将用于对所述第一数据库表中存储的原始数据进行修改的更新数据,写入预先创建的与所述第一数据库表结构相同的第二数据库表,并在所述第一数据库表中将所述原始数据标记为可回收空间;在所述数据更新操作表征数据新增操作的情况下,将用于在所述第一数据库表中新增数据的更新数据,写入所述第二数据库表;在所述目标数据库满足预先设定的数据更新条件的情况下,将所述第二数据库表写入所述第一数据库表,并回收所述第一数据库表中标记的所述可回收空间,以得到更新后的第一数据库表。2.根据权利要求1所述的方法,其特征在于,所述将所述第二数据库表写入所述第一数据库表,并回收所述第一数据库表中标记的所述可回收空间,以得到更新后的第一数据库表,包括:对所述第一数据库表进行备份处理,得到第一备份数据库表,以及对所述第二数据库表进行备份处理,得到第二备份数据库表;将所述第二备份数据库表写入所述第一备份数据库表,并回收所述第一备份数据库表中标记的所述可回收空间,得到更新后的第一备份数据库表;根据所述更新后的第一备份数据库表,得到所述更新后的第一数据库表。3.根据权利要求2所述的方法,其特征在于,所述对所述第一数据库表进行备份处理,得到第一备份数据库表,以及对所述第二数据库表进行备份处理,得到第二备份数据库表,包括:对所述第一数据库表进行备份处理,得到第一备份数据库表以及第一原始备份表,以及对所述第二数据库表进行备份处理,得到第二备份数据库表以及第二原始备份表;所述根据所述更新后的第一备份数据库表,得到所述更新后的第一数据库表,包括:比对所述第一数据库表以及所述第一原始备份表,获取所述第一数据库表与所述第一原始备份表的第一差异数据,以及比对所述第二数据库表以及所述第二原始备份表,获取所述第二数据库表与所述第二原始备份表的第二差异数据;将所述第一差异数据以及所述第二差异数据写入所述更新后的第一备份数据库表,得到所述更新后的第一数据库表。4.根据权利要求3所述的方法,其特征在于,所述将所述第一差异数据以及所述第二差异数据写入所述更新后的第一备份数据库表,得到所述更新后的第一数据库表,包括:将所述第一差异数据以及所述第二差异数据写入所述更新后的第一备份数据库表,得到待校验数据库表;对所述待校验数据库表进行一致性校验,若所述待校验数据库表的一致性校验结果为校验通过,则对所述目标数据库进行数据增量备份,并将所述待校验数据库表作为所述...

【专利技术属性】
技术研发人员:张越赖春媚周涛何兴国
申请(专利权)人:广州图灵科技有限公司
类型:发明
国别省市:

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

1