数据处理方法技术

技术编号:39588505 阅读:8 留言:0更新日期:2023-12-03 19:39
本申请实施例公开了一种数据处理方法

【技术实现步骤摘要】
数据处理方法、装置和计算机可读存储介质


[0001]本申请涉及计算机
,具体涉及一种数据处理方法

装置和计算机可读存储介质


技术介绍

[0002]在使用关系型数据库管理系统
(MYSQL)
的软件系统中,存在很多数据量较小的表,可以将这些表进行全量缓存

例如,可以采用内存存储引擎
(The Memory Storage Engine
,简称
Memory
存储引擎
)
对表数据进行全量缓存

[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]基于修改后的删除标记和所述第三目标数据对应的全局序号,更新所述内存变更
日志文件

[0040]在一实施例中,所述数据处理装置,还包括数据同步单元,用于:
[0041]确定所述内存变更日志文件的文件数量;
[0042]在所述文件数量大于预设文件数量阈值时,根据内存变更日志文件的文件编号确定待处理的目标内存变更日志文件,所述目标内存变更日志文件的文件编号非所述内存变更日志文件的文件编号中最大的文件编号;
[0043]根据所述目标内存变更日志文件中的全局序号,判断所述目标内存变更日志文件中的变更数据是否同步到所述磁盘的目标表数据文件中;
[0044]若未同步到所述磁盘的目标表数据文件中,将所述目标内存变更日志文件中的表数据同步到所述磁盘的目标表数据文件中;
[0045]若同步到所述磁盘的目标表数据文件中,删除所述目标内存变更日志文件

[0046]此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种数据处理方法中的步骤

[0047]此外,本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序实现本申请实施例提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种数据处理方法,其特征在于,包括:获取针对目标数据库的启动指令,启动所述目标数据库;读取磁盘存储的所述目标数据库对应的目标表数据文件和内存变更日志文件,所述内存变更日志文件用于记录针对所述目标表数据文件在内存的全量缓存数据的操作信息,所述操作信息包括全量缓存数据中被操作的变更数据;将所述目标表数据文件中的表数据和所述内存变更日志文件中的变更数据进行数据合并处理,得到目标表数据;基于所述目标表数据在所述内存中构建所述目标表数据文件对应的目标全量缓存数据
。2.
如权利要求1所述的数据处理方法,其特征在于,所述目标表数据文件和所述内存变更日志文件中每一行数据存在一个全局序号,所述将所述目标表数据文件中的表数据和所述内存变更日志文件中的变更数据进行数据合并处理,得到目标表数据,包括:获取所述内存变更日志文件中每一行变更数据的变更数据全局序号;根据所述变更数据全局序号对比所述表数据和所述变更数据,根据对比结果在所述变更数据中确定出未写入所述目标表数据文件的目标变更数据;将所述目标变更数据和所述表数据进行数据合并处理,得到目标表数据
。3.
如权利要求2所述的数据处理方法,其特征在于,所述将所述目标表数据文件中的表数据和所述内存变更日志文件中的变更数据进行数据合并处理,得到目标表数据之前,还包括:记录所述变更数据全局序号中最大的目标全局序号;所述基于所述目标表数据在所述内存中构建所述目标表数据文件对应的目标全量缓存数据之后,还包括:当接收到针对所述目标全量缓存数据的数据添加操作时,获取记录的最大的目标全局序号;对所述目标全局序号进行序号递增处理,得到第一目标全局序号;将所述数据添加操作对应的第一目标数据写入所述目标全量缓存数据;基于所述第一目标全局序号和所述第一目标数据更新所述内存变更日志文件
。4.
如权利要求3所述的数据处理方法,其特征在于,所述基于所述第一目标全局序号和所述第一目标数据更新所述内存变更日志文件,包括:获取所述内存变更日志文件的存储数据量;在所述存储数据量不大于预设数据量阈值时,将所述第一目标全局序号和所述第一目标数据写入所述内存变更日志文件;在所述存储数据量大于所述预设数据量阈值时,获取所述内存变更日志文件的最大文件编号;创建新的内存变更日志文件,以及对所述新的内存变更日志文件的文件编号赋值为对所述最大文件编号进行递增后的文件编号;将所述第一目标全局序号以及所述第一目标数据写入所述新的内存变更日志文件
。5.
如权利要求1所述的数据处理方法,其特征在于,所述基于所述目标表数据在所述内存中构建所述目标表数据文件对应的目标全量缓存数据之后,还包括:
响应于针...

【专利技术属性】
技术研发人员:毕鲁君黄旭斌陈凡王升阳叶章明
申请(专利权)人:浙江正泰物联技术有限公司
类型:发明
国别省市:

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

1