[发明专利]在数据库中查询事务修改内容的方法及装置在审
申请号: | 202210049157.8 | 申请日: | 2022-01-17 |
公开(公告)号: | CN114064664A | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 阳振坤;陈俊全;韩富晟;孔繁宇 | 申请(专利权)人: | 北京奥星贝斯科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/245;G06F16/28 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 陈霁;周良玉 |
地址: | 100020 北京市朝阳区东三*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 事务 修改 内容 方法 装置 | ||
本说明书实施例提供了在数据库中查询事务修改内容的方法及装置,该方法的一具体实施方式包括:接收针对目标事务的修改内容的查询请求;根据查询请求,获取目标事务的事务描述符,其中,事务描述符预先关联目标事务已修改的若干行的行信息,行信息至少包括行标识;根据该若干行的行信息,获取该若干行各自的目标数据,目标数据包括其对应的行的主键和经目标事务修改后的若干个字段值;返回包括该若干行各自的目标数据的查询结果。
技术领域
本说明书实施例涉及计算机技术领域,具体地,涉及在数据库中查询事务修改内容的方法及装置。
背景技术
在数据库的事务实现中,有时候需要获取事务所有修改行的信息,例如,在事务提交前需要获取这个事务所有修改行的信息,以检查修改行是否满足数据库的约束条件等,还有事务执行失败的时候需要回滚已经修改的行等等。
目前,基于B+树数据结构的数据库,可以通过查找事务的回滚日志(Undo Log)来获取事务所有修改行的信息。然而有些基于其他数据结构的数据库,例如基于增量+存量数据结构的数据库,具体如OceanBase等数据库,通常没有回滚日志,无法通过查找事务的回滚日志来获取事务所有修改行的信息。
因此,迫切需要一种合理、可靠的方案,可以提供具有通用性的事务修改内容获取方法。
发明内容
本说明书实施例提供了在数据库中查询事务修改内容的方法及装置,可以提供具有通用性的事务修改内容获取方法。
第一方面,本说明书实施例提供了一种在数据库中查询事务修改内容的方法,包括:接收针对目标事务的修改内容的查询请求;根据所述查询请求,获取所述目标事务的事务描述符,其中,所述事务描述符预先关联所述目标事务已修改的若干行的行信息,所述行信息至少包括行标识;根据所述若干行的行信息,获取所述若干行各自的目标数据,所述目标数据包括其对应的行的主键和经所述目标事务修改后的若干个字段值;返回包括所述若干行各自的目标数据的查询结果。
在一些实施例中,所述查询请求包括所述目标事务的事务标识;以及所述根据所述查询请求,获取所述目标事务的事务描述符,包括:根据所述事务标识,获取所述事务描述符。
在一些实施例中,所述查询请求包括所述事务描述符;以及所述根据所述查询请求,获取所述目标事务的事务描述符,包括:从所述查询请求中获取所述事务描述符。
在一些实施例中,所述数据库预先建立有第一映射关系,其用于表征所述事务描述符和所述若干行的行标识之间的映射关系;以及所述方法还包括:根据所述事务描述符,在所述数据库中查找所述第一映射关系;所述根据所述若干行的行信息,获取所述若干行各自的目标数据,包括:根据查找到的所述第一映射关系示出的所述若干行的行标识,获取所述若干行的主键;对于所述若干行中的任意行,根据所述任意行的主键,获取所述任意行经所述目标事务修改后的若干个字段值,并将该主键和该若干个字段值作为所述任意行的目标数据。
在一些实施例中,所述第一映射关系具体为以所述事务描述符为链表头的第一链表,所述行标识具体为主键存储地址;以及所述根据查找到的所述第一映射关系示出的所述若干行的行标识,获取所述若干行的主键,包括:根据所述第一链表示出的主键存储地址,获取所述若干行的主键。
在一些实施例中,所述第一映射关系具体包括所述事务描述符和由所述若干行的行标识组成的行标识集合;以及所述根据查找到的所述第一映射关系示出的所述若干行的行标识,获取所述若干行的主键,包括:根据所述行标识集合,获取所述若干行的主键。
在一些实施例中,所述行标识具体为主键,所述行标识集合为主键集合;以及所述根据所述行标识集合,获取所述若干行的主键,包括:从所述主键集合中获取所述若干行的主键。
在一些实施例中,所述行标识具体为主键存储地址,所述行标识集合为主键存储地址集合;以及所述根据所述行标识集合,获取所述若干行的主键,包括:根据所述主键存储地址集合,获取所述若干行的主键。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奥星贝斯科技有限公司,未经北京奥星贝斯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210049157.8/2.html,转载请声明来源钻瓜专利网。