CN107609011B - 一种数据库记录的维护方法和装置 - Google Patents

一种数据库记录的维护方法和装置 Download PDF

Info

Publication number
CN107609011B
CN107609011B CN201710633565.7A CN201710633565A CN107609011B CN 107609011 B CN107609011 B CN 107609011B CN 201710633565 A CN201710633565 A CN 201710633565A CN 107609011 B CN107609011 B CN 107609011B
Authority
CN
China
Prior art keywords
record
deletion
base table
base
database
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.)
Active
Application number
CN201710633565.7A
Other languages
English (en)
Other versions
CN107609011A (zh
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 Percent Technology Group Co ltd
Original Assignee
Beijing Baifendian Information Science & Technology 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 Baifendian Information Science & Technology Co ltd filed Critical Beijing Baifendian Information Science & Technology Co ltd
Priority to CN201710633565.7A priority Critical patent/CN107609011B/zh
Publication of CN107609011A publication Critical patent/CN107609011A/zh
Application granted granted Critical
Publication of CN107609011B publication Critical patent/CN107609011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本申请公开了一种数据库记录的维护方法和装置。方法包括:根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。本申请通过为数据库基表配置对应的删除表,以在对基表中的记录执行删除、更新等操作时,将被删除记录的标识写入删除表,进而更新元数据表存储的基表和删除表的有效长度,以完成修改记录的操作。与现有技术相比,能有效提高修改记录的效率,进而提高记录管理的效率。

Description

一种数据库记录的维护方法和装置
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库记录的维护方法和装置。
背景技术
Hadoop海杜普是目前主流的大数据分布式存储与计算平台。由HDFS分布式文件系统、Map-Reduce分布式处理框架和YARN资源管理框架组成。其中,HDFS分布式文件系统面向大数据集,实现了一次写入多次读取的文件访问模型,解决了大数据场景下高数据吞吐量和高可靠性的问题。
但是同时也带来了一些文件操作上的局限,比如只支持文件Append添加操作,在小文件的存取、并发写入上与传统文件模型还存在差距,不支持对文件的随机修改。HDFS不支持文件随机修改的限制使得基于HDFS的分布式数据库在Delete删除操作和Update更新操作上变得困难。
目前,有些数据库依然不支持Delete和Update操作,而有些数据库通过增加数据处理量来“换取”支持Delete和Update操作,导致数据量越来越多,影响了记录的修改效率。
发明内容
本申请实施例提供一种数据库记录的维护方法和装置,用于解决现有的技术方案修改记录效率偏低的问题。
本申请实施例提供一种数据库记录的维护方法,包括:
根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
可选的,还包括:
确定对数据库基表中的记录的查询操作,所述查询操作中携带有查询条件;
确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录,并输出为查询结果。
可选的,所述确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录包括:
基于所述查询条件,确定数据库基表中的待查询基表以及与所述待查询基表对应的删除表;
确定所述待查询基表中与所述查询条件相匹配且记录的标识不在所述与所述待查询基表对应的删除表的记录。
可选的,还包括:
在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度,并删除所述基表对应的删除表中的所述第一记录的标识。
可选的,在对所述基表中的第一记录执行删除操作之前,还包括:
对比所述元数据表存储的所述基表对应的删除表的有效长度和所述删除表的实际长度,所述实际长度用于表示对应的表的实际记录数;
若对比获知所述删除表的有效长度与实际长度相同,则允许执行所述删除操作;
若对比获知所述删除表的有效长度与实际长度不相同,则对所述删除表执行截断操作,以将所述删除表的实际长度截断为所述有效长度。
可选的,还包括:
在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度。
可选的,还包括:
根据对数据库基表中的第二记录的更新操作,在所述基表对应的删除表中增加所述第二记录的标识;
在所述基表中写入所述第二记录更新后的第三记录;
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
可选的,还包括:
在接收到用于撤销所述更新操作的指令时,将所述元数据表存储的基表和所述基表对应的删除表的有效长度恢复为执行所述更新操作前的有效长度,并删除所述基表中的第三记录和所述基表对应的删除表中的所述第二记录的标识。
可选的,在对所述基表中的第二记录执行更新操作之前,还包括:
对比所述基表的有效长度和实际长度以及所述基表对应的删除表的有效长度和实际长度,所述实际长度用于表示对应的表的实际记录数;
若对比获知所述基表的有效长度和实际长度以及所述删除表的有效长度与实际长度相同,则允许执行所述更新操作;
若对比获知所述基表的有效长度和实际长度和/或所述删除表的有效长度与实际长度不相同,则对所述基表和/或所述删除表执行截断操作,以将所述基表和/或所述删除表的实际长度截断为对应的有效长度。
可选的,还包括:
在接收到用于撤销所述更新操作的指令时,将所述元数据表存储的基表和所述基表对应的删除表的有效长度恢复为执行所述更新操作前的有效长度。
可选的,所述数据库为分布式数据库,所述基表为非关系型分布式数据库的数据表。
本申请实施例还提供一种数据库记录的维护方法,包括:
根据对数据库基表中的第四记录的更新操作,在所述基表对应的删除表中增加所述第四记录的标识;
在所述基表中写入所述第四记录更新后的第五记录;
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
本申请实施例还提供一种数据库记录的维护装置,包括:
第一处理单元,用于根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
第二处理单元,用于修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
可选的,还包括:查询单元;
所述查询单元,用于确定对数据库基表中的记录的查询操作,所述查询操作中携带有查询条件;确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录,并输出为查询结果。
可选的,所述查询单元,用于基于所述查询条件,确定数据库基表中的待查询基表以及与所述待查询基表对应的删除表;确定所述待查询基表中与所述查询条件相匹配且记录的标识不在所述与所述待查询基表对应的删除表的记录。
可选的,还包括:第一撤销单元;
所述第一撤销单元,用于在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度,并删除所述基表对应的删除表中的所述第一记录的标识。
可选的,还包括:第三处理单元;
所述第三处理单元,用于根据对数据库基表中的第二记录的更新操作,在所述基表对应的删除表中增加所述第二记录的标识;在所述基表中写入所述第二记录更新后的第三记录;修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
可选的,还包括:第二撤销单元;
所述第二撤销单元,用于在接收到用于撤销所述更新操作的指令时,将所述元数据表存储的基表和所述基表对应的删除表的有效长度恢复为执行所述更新操作前的有效长度,并删除所述基表中的第三记录和所述基表对应的删除表中的所述第二记录的标识。
可选的,所述数据库为分布式数据库,所述基表为非关系型分布式数据库的数据表。
本申请实施例还提供一种数据库记录的维护装置,包括:
第四处理单元,用于根据对数据库基表中的第四记录的更新操作,在所述基表对应的删除表中增加所述第四记录的标识;
写入单元,用于在所述基表中写入所述第四记录更新后的第五记录;
第五处理单元,用于修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
本申请实施例还提供一种数据库记录维护装置,包括:存储器和处理器,其中:
存储器,用于存放程序;
处理器,用于执行所述存储器存放的程序,并具体执行:
根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
本申请实施例还提供一种数据库记录维护装置,包括:存储器和处理器,其中:
存储器,用于存放程序;
处理器,用于执行所述存储器存放的程序,并具体执行:
根据对数据库基表中的第四记录的更新操作,在所述基表对应的删除表中增加所述第四记录的标识;
在所述基表中写入所述第四记录更新后的第五记录;
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
根据对数据库基表中的第四记录的更新操作,在所述基表对应的删除表中增加所述第四记录的标识;
在所述基表中写入所述第四记录更新后的第五记录;
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本申请实施例仅在原有数据库的基础上,为每个基表增加对应的删除表,以在对基表中的记录执行删除、更新等操作时,将被删除记录的标识写入删除表,进而更新元数据表存储的基表和删除表的有效长度,以完成修改记录的操作。可见,本申请实施例没有增加新的元数据表,而且添加删除、更新等操作无需区别对待。与现有技术中每次修改记录都会生成一个表或者修改记录,引起数据量越来越多,进而导致修改记录的效率很低的方案相比,能在高效率实现修改记录操作的同时,精简设计、不影响数据库原有的事务管理机制。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例的应用场景图;
图2为本申请实施例1提供的一种数据库记录的维护方法的流程示意图;
图3为本申请实施例1提供的删除操作的流程示意图;
图4为本申请实施例2提供的一种数据库记录的维护方法的流程示意图;
图5为本申请实施例2提供的更新操作的流程示意图;
图6为本申请实施例3提供的一种数据库记录的维护方法的流程示意图;
图7为本申请实施例3提供的查询操作的流程示意图;
图8为本申请实施例4提供的一种数据库记录的维护方法的流程示意图;
图9为本申请实施例5提供的一种数据库记录的维护方法的流程示意图;
图10为本申请实施例6提供的一种数据库记录的维护装置的结构示意图;
图11为本申请实施例7提供的一种数据库记录的维护装置的结构示意图;
图12为本申请实施例8提供的一种电子设备的结构示意图;
图13为本申请实施例9提供的一种数据库记录的维护装置的结构示意图;
图14为本申请实施例10提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如22、24等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本领域技术人员不难理解的是,下文出现的分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。其中,每个数据存储单元均有与之对应的Base Table基表。
参见图1,Meta Data Space元数据空间和Table Space表空间属于分布式数据库,在HDFS分布式文件系统之外。其中,表空间用于存放数据对象,例如:Table表,索引,视图,图表,缺省值,规则,触发器,用户,函数等;元数据空间用于存放用于描述数据的数据,例如:用于描述表空间中的表的Meta Tble元数据表。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图2为本申请实施例1提供的一种数据库记录的维护方法的流程示意图,参见图2,该方法包括如下步骤:
步骤22、根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
需要说明的是,此处的数据库可以为分布式数据库,相应地,基表可以为非关系型分布式数据库的数据表,下文均以分布式数据库为例进行说明。分布式数据库的数据源可以为表格等,其中,表格中的列为字符,行为记录。以学员表为例。列由id、姓名、性别组成。字段就是指id或者姓名或者性别。换句话说:id是一个字段;姓名也是一个字段;性别也是一个字段。记录就是表中以行为单位,一行就称为一条记录。还是以学员表为例,查询表中所有的数据,其中的任意一行就称为一条记录。如(id:1-姓名:张三-性别:男)。
参见图1,需要说明的是,在分布式数据库中,每个Base Table基表均可有与之对应的至少一个Delta Table删除表,两者之间可基于编号等标识信息进行关联,例如:基表1对应于删除表1,基表2对应于删除表2。其中,基表1用于存储记录,例如:记录1、记录2、记录3和记录4;删除表1用于存储基表1中被删除的记录的标识,例如:记录2的ID。
步骤24、修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
参见图3,基表1中有记录1-4,删除表1中有记录2的ID。删除操作举例为删除基表1中的第一记录-记录3。具体包括:
将记录3的ID添加至基表1对应的删除表1中。然后,将元数据表中存储的删除表1的有效长度1修改为2,删除操作结束。其中,删除表的有效长度与删除表存储的记录的标识相对应。例如:存储有2个记录标识的删除表的有效长度为2,存储有3个记录标识的删除表的有效长度为3。
另外,本申请实施例还允许撤销删除操作,为保证撤销删除操作后删除表的实际长度和有效长度相等,提供了如下两种技术方案:
第一种、在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度,并删除所述基表对应的删除表中的所述第一记录的标识。
例如:基表1记录有记录1-3,删除表1中包含记录2,元数据表中记载的基表1和删除表表1的有效长度分别为3和1,基表1实际有效记录为1、3。执行删除记录3操作时,删除表1中添加记录3的标识,元数据表中记载的删除表1有效长度变为2。此时如果需要撤销该删除操作,只需将元数据表里删除表1的有效长度由2恢复为1,并删除存储在删除表1中的记录3的标识即可。
第二种、在执行步骤22之前,对比所述元数据表存储的所述基表对应的删除表的有效长度和所述删除表的实际长度,所述实际长度用于表示对应的表的实际记录数;若对比获知所述删除表的有效长度与实际长度相同,则允许执行所述删除操作;若对比获知所述删除表的有效长度与实际长度不相同,则对所述删除表执行截断操作,以将所述删除表的实际长度截断为所述有效长度,然后执行删除操作。
需要说明的是,本方案通过每次对删除表操作时,一开始都做一次truncate截断操作,将删除表的实际长度truncate为有效长度。其中,HDFS文件系统是支持文件的truncate操作的。
基于此,在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度。
例如:基表1记录有记录1-3,删除表1中包含记录2,元数据表中记载的基表1和删除表表1的有效长度分别为3和1。执行删除记录3操作时,删除表1中添加记录3的标识,元数据表中记载的删除表1有效长度变为2。此时如果需要撤销该删除操作,只需将元数据表里删除表1的有效长度由2恢复为1。由此,删除表1的有效长度为1,而实际长度为2。
在下一次执行删除操作之前,例如,在删除基表1中的记录1之前,对比删除表1的有效长度和实际长度,对比获知两者不相等,则对其进行truncate操作,将删除表1中的记录3删除,以将删除表1的实际长度truncate为有效长度。
由此,上述两种撤销操作的方案均可实现在对基表中的第一记录执行删除操作之前,该基表对应的删除表的实际长度等于元数据表存储的该删除表的有效长度。
可见,本申请实施例为数据库的每个基表增加对应的删除表,以在对基表中的记录执行删除操作时,将被删除记录的标识写入删除表,然后修改元数据表存储的基表和删除表的有效长度,以完成修改记录的操作。可见,本申请实施例没有增加新的元数据表。与现有技术中每次修改记录都会生成一个表或者修改记录,引起数据量越来越多,进而导致修改记录的效率很低的方案相比,能在高效率实现修改记录操作的同时,精简设计、不影响数据库原有的事务管理机制。
而且,本申请实施例还允许用户撤销删除操作,能避免在删除操作发生错误时,由于无法取消删除操作导致可能需要花费大量成本才能“修补”错误操作带来的问题,进而实现进一步地提高修改记录效率的目的。
实施例2
图4为本申请实施例2提供的一种数据库记录的维护方法的流程示意图,本申请实施例包括实施例1记载的全部内容,而且还包括更新操作的相关步骤,如下:
步骤42、根据对数据库基表中的第二记录的更新操作,在所述基表对应的删除表中增加所述第二记录的标识;
步骤44、在所述基表中写入所述第二记录更新后的第三记录;
步骤46、修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
参见图5,基表1中有记录1-4,删除表1中有记录2的ID。更新操作举例为对基表1中的第二记录-记录3进行更新,具体包括:
将记录3的唯一标识加入删除表1中,并将元数据表记录的删除表1的有效长度修改为2。然后将更新后的记录3(即记录5)写入到基表1。将元数据表中记录的基表1的有效长度修改为5。更新操作结束。
另外,本申请实施例还允许撤销更新操作,为保证撤销更新操作后基表和对应删除表的实际长度和有效长度相等,还提供了如下两种技术方案:
第一种、在接收到用于撤销更新操作的指令时,将元数据表存储的基表和所述基表对应的删除表的有效长度恢复为执行更新操作前的有效长度,并删除所述基表中的第三记录和基表对应的删除表中的所述第二记录的标识。
参见图5,撤销过程举例为:基表1记录有记录1-4,删除表1中包含记录2的ID,元数据表中记载的基表1和删除表表1的长度分别为4和1,基表1实际有效记录为记录1、记录3、记录4。执行更新记录3操作时,删除表1中添加记录3的唯一标识,元数据表中记载的删除表1的长度信息变为2。同时,基表1中添加更新后的记录3(即记录5),元数据表中记载的基表1的长度变为5。此时如果需要撤销更新操作,则将元数据表记载的基表1和删除表1的长度由5和2恢复为4和1,然后删除基表1中的记录5和删除表1中的记录3的标识即可完成撤销操作。
第二种、在执行步骤42之前,对比所述基表的有效长度和实际长度以及所述基表对应的删除表的有效长度和实际长度,所述实际长度用于表示对应的表的实际记录数;若对比获知所述基表的有效长度和实际长度以及所述删除表的有效长度与实际长度相同,则允许执行所述更新操作;若对比获知所述基表的有效长度和实际长度和/或所述删除表的有效长度与实际长度不相同,则对所述基表和/或所述删除表执行截断操作,以将所述基表和/或所述删除表的实际长度截断为对应的有效长度。
基于第二种方案,在接收到用于撤销所述更新操作的指令时,将所述元数据表存储的基表和所述基表对应的删除表的有效长度恢复为执行所述更新操作前的有效长度,而无需修改基表中的记录和删除表中的记录的标识。
可见,本申请实施例为数据库的每个基表增加对应的删除表,以在对基表中的记录执行更新操作时,将被更新记录的标识写入删除表,并将更新后的新的记录写入基表,然后更新元数据表存储的基表和删除表的有效长度,完成修改记录的操作。可见,本申请实施例没有增加新的元数据表。与现有技术中每次更新记录都会生成一个表或者修改记录,引起数据量越来越多,进而导致修改记录的效率很低的方案相比,能在高效率实现修改记录操作的同时,精简设计、不影响数据库原有的事务管理机制。
而且,本申请实施例还允许用户撤销更新操作,能避免在更新操作发生错误时,由于无法取消更新操作导致可能需要花费大量的操作才能“修补”错误操作带来的问题,进而实现进一步地提高修改记录效率的目的。
实施例3
图6为本申请实施例3提供的一种数据库记录的维护方法的流程示意图,本实施例包括实施例1和/或实施例2公开的全部内容,且还包括查询操作,参见图6,查询操作具体包括如下步骤:
步骤62、确定对数据库基表中的记录的查询操作,所述查询操作中携带有查询条件;
需要说明的是,用户可通过输入设备查询分布式数据库中的相关记录,查询条件可举例为:查询第一数据存储单元中是否存在“A”的相关记录,或者整个分布式数据库中是否存在“B”的相关记录。
步骤64、确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录,并输出为查询结果;
需要说明的是,解析查询操作以获取查询条件,查询条件可包括:待查询基表的ID、关键字等等。然后,基于查询条件先确定与ID对应的待查询基表和与待查询基表对应的表更表;再然后,确定存储在所述待查询基表中的与查询条件相匹配的且记录的标识未存储在所述与所述待查询基表对应的表更表的记录。
以图7的示出为例,待查询基表为基表1、2、3等等,查询内容为待查询基表中的实际有效记录。其中。实际有效记录为存储在基表中且标识没有存储在与该基表对应的删除表中的记录。首先,将确定基表1中的所有记录,记录1-5,然后将基表1中的记录与删除表1中的记录进行对比,进而确定基表1中未被删除的实际有效记录,记录1、记录4和记录5。以此类推,确定其他基表中的实际有效记录。
另外,不难理解的是,此处的查询条件可以为SQL多条件查询,用户可基于自身需求设置查询条件,例如:带条件的,不带条件的,对一个表的查询,对多个表的连接查询,对基表的查询,对删除表的查询等等。更具体地:
SELECT*FROM table1WHERE column1='abc',意思是从表table1中找出列column1值为abc的所有记录。
不难理解的是,在完成查询作业后,可将最后确定的查询结果展示给用户。或者先存储至预设位置,并在用户输入“查看查询结果”的指示后展示给用户。
可见,本申请实施例在接收到用户的查询操作时,能基于与基表对应的删除表直接确定出基表中与查询条件相匹配的且实际有效的记录,并返回用户。能避免现有技术方案需要处理大量数据才能给出查询结果的问题,达到提高查询效率的目的。
实施例4
图8为本申请实施例4提供的一种数据库记录的维护方法的流程示意图,参见图8,该方法包括如下步骤:
步骤82、根据对数据库基表中的第四记录的更新操作,在所述基表对应的删除表中增加所述第四记录的标识;
步骤84、在所述基表中写入所述第四记录更新后的第五记录;
步骤84、修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
不难理解的是,本实施例与实施例2记载的内容相似,故,此处不在对实施例4进行展开说明。具体请参见实施例2的对应描述。
实施例5
图9为本申请实施例5提供的一种数据库记录的维护方法的流程示意图,参见图9,该方法包括如下步骤:
步骤92、确定对数据库基表中的记录执行的指定操作,所述记录为数据库对应的数据源中一行信息的一组完整的相关信息;
不难理解的是,用户通过输入设备输入指定操作,以修改分布式数据库的记录。其中,指定操作可以为删除、添加或者更新操作等。
步骤94、基于所述指定操作更新所述数据库的基表中存储的记录和/或删除表存储的记录的标识,所述删除表用于存储与删除表对应的基表中被删除记录的标识;
不难理解的是,更新步骤包括:解析用户输入的指定操作,获取数据库中待修改的基表的标识、待修改记录的标识、待写入记录等等信息。然后基于解析出的信息,执行修改记录的操作。例如:向待修改基表中写入记录,或者修改待修改基表中的待修改记录并将待修改记录的标识写入删除表中等等。
步骤96、更新元数据表中记录的更新后的基表和/或删除表的有效长度,所述元数据表用于存储数据库基表和删除表的有效长度。
参见图1,需要说明的是,基于步骤94执行的修改记录的指定操作,基表中的记录和表更表中的记录的标识可能发生变化。例如:基表中的记录增加了、减少了,或者删除表中的记录的标识增加了。相应地,基于基表和删除表中的信息变化同步更新元数据表的有效长度。
下面将指定操作具体为删除操作、添加操作和更新操作对本步骤进行详细说明:
当指定操作为删除基表中的目标记录的操作时,将目标记录的标识添加至所述删除表中。此过程与实施例1中记载的内容相似,故,此处不在赘述,请参见实施例1中的相关描述。
当指定操作为向基表中添加目标记录的操作时,将所述目标记录添加至所述基表中。例如:基表1中原有记录包括记录1、记录2和记录3,将记录4作为目标记录添加至基表1中。然后更新元数据表中存储的基表1的有效长度4,添加操作结束。其中,基表的有效长度与基表存储的记录相对应。例如:存储有2个记录的基表的有效长度为2,存储有3个记录的基表的有效长度为3。
当指定操作为更新基表中的目标记录的操作时,将更新后的目标记录添加至所述基表中;将更新前的目标记录的标识添加至所述删除表中。此过程与实施例2中记载的内容相似,故,此处不在赘述,请参见实施例2中的相关描述。
本申请实施例中,还允许用户撤销指定操作,具体如下:在接收到撤销所述指定操作的指令时,将所述元数据表存储的基表和/或删除表的有效长度恢复为执行所述指定操作前的有效长度,并删除添加至基表和/或删除表的记录、记录的标识。
例如:基表1记录有1、2、3,删除表1中包含记录2,元数据表中记载的基表1和删除表表1的长度分别为3和1。执行更新记录3操作时,删除表1中添加记录3的标识,元数据表中记载的删除表1的长度信息变为2。同时,基表1中添加了记录4,元数据表中记载的基表1的长度变为4。此时如果需要取消操作,只需将元数据表里基表1和删除表1的长度由4和2恢复为3和1,并删除基表1中的记录4和删除表1中的记录3的标识即可。
另外,本实施例与上述实施例有相似之处,故,部分内容没有展开说明,具体请参照上述实施例中的相关描述。
可见,本申请实施例仅在原有分布式数据库的基础上,为每个基表增加对应的删除表,即可解决修改记录的操作。没有增加新的元数据表,而且添加操作、删除操作和更新操作无需区别对待。与现有技术中每次修改操作都会生成一个表或者修改记录,引起数据量越来越多,进而导致修改记录的效率很低的方案相比,能在高效率实现修改记录操作的同时,精简设计、不影响分布式数据库原有的事务管理机制。
而且,本申请实施例还运行用户取消指定操作,能避免在指定操作发生错误时,由于无法取消指定操作导致可能需要花费大量的操作才能“修补”错误的问题,进而实现进一步地提高修改记录效率的目的。
对于上述方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。
另外,实施例1-5所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤22和步骤24的执行主体可以为设备1,步骤26的执行主体可以为设备2;又比如,步骤22的执行主体可以为设备1,步骤24和步骤26的执行主体可以为设备2;等等。
实施例6
图10为本申请实施例6提供的一种数据库记录的维护装置的结构示意图,该装置包括:第一处理单元101和第二处理单元102,其中:
第一处理单元101,用于根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
第二处理单元102,用于修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
需要说明的是,用户通过输入设备向分布式数据库输入删除基表第一记录的操作,第一处理单元101确定第一记录的标识,例如:ID,并将第一记录的ID写入至基表对应的删除表中。然后触发第二处理单元102,由第二处理单元102基于删除操作的结果修改删除表的有效长度。
本申请实施例中,装置还包括:查询单元;
查询单元,用于确定对数据库基表中的记录的查询操作,所述查询操作中携带有查询条件;确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录,并输出为查询结果。
查询单元确定记录的原理包括:基于所述查询条件,确定数据库基表中的待查询基表以及与所述待查询基表对应的删除表;确定所述待查询基表中与所述查询条件相匹配且记录的标识不在所述与所述待查询基表对应的删除表的记录。
本申请实施例中,装置还包括:第一撤销单元;
第一撤销单元,用于在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度,并删除所述基表对应的删除表中的所述第一记录的标识。
可见,本申请实施例仅在原有分布式数据库的基础上,为每个基表增加对应的删除表,即可解决删除记录的操作。没有增加新的元数据表。与现有技术中每次修改操作都会生成一个表或者修改记录,引起数据量越来越多,进而导致修改记录的效率很低的方案相比,能在高效率实现修改记录操作的同时,精简设计、不影响分布式数据库原有的事务管理机制。
而且,本申请实施例还运行用户取消删除操作,能避免在删除操作发生错误时,由于无法取消删除操作导致可能需要花费大量的操作才能“修补”错误的问题,进而实现进一步地提高修改记录效率的目的。
另外,本申请实施例在接收到用户的查询指令时,能基于新增加的与基表对应的删除表直接确定出基表中与查询条件相匹配的且实际有效的记录,并返回用户。能避免现有技术方案需要处理大量数据才能给出查询结果的问题,达到提高查询效率的目的。
实施例7
图11为本申请实施例7提供的一种数据库记录的维护装置的结构示意图,参见图11,该装置包括:第一处理单元111、第二处理单元112和第三处理单元113,其中:
第一处理单元111、第二处理单元112与实施例6中的第一处理单元101和第二处理单元102相同/相似,故,此处不再赘述。
另外,本申请实施例包括实施例6中的全部内容,不同之处在于第三处理单元113。
第三处理单元113,用于根据对数据库基表中的第二记录的更新操作,在所述基表对应的删除表中增加所述第二记录的标识;在所述基表中写入所述第二记录更新后的第三记录;修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
可见,本申请实施例在实施例6的基础上,对记录的更新操作进行了描述,以进一步地提高记录修改的效率。
实施例8
图12为本申请实施例8提供的一种电子设备的结构示意图,参见图12,该电子设备包括:处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据库记录的维护装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
网络接口、处理器和存储器可以通过总线系统相互连接。总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器可能包含高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器。
处理器,用于执行所述存储器存放的程序,并具体执行:
根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
上述如本申请图2、4、6和图10-11所示实施例揭示的数据库记录的维护装置或管理者(Master)节点执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
数据库记录的维护装置还可执行图2、4、6的方法,并实现管理者节点执行的方法。
基于相同的发明创造,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
实施例9
图13为本申请实施例9提供的一种数据库记录的维护装置的结构示意图,参见图13,该装置包括:第四处理单元131、写入单元132和第五处理单元133,其中:
第四处理单元131,用于根据对数据库基表中的第四记录的更新操作,在所述基表对应的删除表中增加所述第四记录的标识;
写入单元132,用于在所述基表中写入所述第四记录更新后的第五记录;
第五处理单元133,用于修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
需要说明的是,本申请实施例包括实施例8中的全部内容,故,相同之处此处不在描述。
对于上述装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。
实施例10
图14为本申请实施例10提供的一种电子设备的结构示意图,参见图14,该电子设备包括:处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据库记录的维护装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
网络接口、处理器和存储器可以通过总线系统相互连接。总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器可能包含高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器。
处理器,用于执行所述存储器存放的程序,并具体执行:
根据对数据库基表中的第四记录的更新操作,在所述基表对应的删除表中增加所述第四记录的标识;
在所述基表中写入所述第四记录更新后的第五记录。
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
上述如本申请图8和图13所示实施例揭示的数据库记录的维护装置或管理者(Master)节点执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
数据库记录的维护装置还可执行图8的方法,并实现管理者节点执行的方法。
基于相同的发明创造,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
根据对数据库基表中的第四记录的更新操作,在所述基表对应的删除表中增加所述第四记录的标识;
在所述基表中写入所述第四记录更新后的第五记录。
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种数据库记录的维护方法,其特征在于,包括:
根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数;
根据对数据库基表中的第二记录的更新操作,在所述基表对应的删除表中增加所述第二记录的标识;
在所述基表中写入所述第二记录更新后的第三记录;
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度;
确定对数据库基表中的记录的查询操作,所述查询操作中携带有查询条件;
确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录,并输出为查询结果;
确定对数据库基表中的记录执行的指定操作,所述记录为数据库对应的数据源中一行信息的一组完整的相关信息;
基于所述指定操作更新所述数据库的基表中存储的记录和/或删除表存储的记录的标识,所述删除表用于存储与删除表对应的基表中被删除记录的标识;其中,更新步骤包括:解析用户输入的指定操作,获取数据库中待修改的基表的标识、待修改记录的标识、待写入记录;然后基于解析出的信息,执行修改记录的操作;
更新元数据表中记录的更新后的基表和/或删除表的有效长度;
所述确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录包括:
基于所述查询条件,确定数据库基表中的待查询基表以及与所述待查询基表对应的删除表;
确定所述待查询基表中与所述查询条件相匹配且记录的标识不在所述与所述待查询基表对应的删除表的记录。
2.根据权利要求1所述的方法,其特征在于,还包括:
在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度,并删除所述基表对应的删除表中的所述第一记录的标识。
3.根据权利要求1所述的方法,其特征在于,在对所述基表中的第一记录执行删除操作之前,还包括:
对比所述元数据表存储的所述基表对应的删除表的有效长度和所述删除表的实际长度,所述实际长度用于表示对应的表的实际记录数;
若对比获知所述删除表的有效长度与实际长度相同,则允许执行所述删除操作;
若对比获知所述删除表的有效长度与实际长度不相同,则对所述删除表执行截断操作,以将所述删除表的实际长度截断为所述有效长度。
4.根据权利要求3所述的方法,其特征在于,还包括:
在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度。
5.根据权利要求1所述的方法,其特征在于,还包括:
在接收到用于撤销所述更新操作的指令时,将所述元数据表存储的基表和所述基表对应的删除表的有效长度恢复为执行所述更新操作前的有效长度,并删除所述基表中的第三记录和所述基表对应的删除表中的所述第二记录的标识。
6.根据权利要求5所述的方法,其特征在于,在对所述基表中的第二记录执行更新操作之前,还包括:
对比所述基表的有效长度和实际长度以及所述基表对应的删除表的有效长度和实际长度,所述实际长度用于表示对应的表的实际记录数;
若对比获知所述基表的有效长度和实际长度以及所述删除表的有效长度与实际长度相同,则允许执行所述更新操作;
若对比获知所述基表的有效长度和实际长度和/或所述删除表的有效长度与实际长度不相同,则对所述基表和/或所述删除表执行截断操作,以将所述基表和/或所述删除表的实际长度截断为对应的有效长度。
7.根据权利要求5所述的方法,其特征在于,还包括:
在接收到用于撤销所述更新操作的指令时,将所述元数据表存储的基表和所述基表对应的删除表的有效长度恢复为执行所述更新操作前的有效长度。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述数据库为分布式数据库,所述基表为非关系型分布式数据库的数据表。
9.一种数据库记录的维护装置,其特征在于,包括:
第一处理单元,用于根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
第二处理单元,用于修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数;
第三处理单元,用于根据对数据库基表中的第二记录的更新操作,在所述基表对应的删除表中增加所述第二记录的标识;在所述基表中写入所述第二记录更新后的第三记录;修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数;
查询单元,用于确定对数据库基表中的记录的查询操作,所述查询操作中携带有查询条件;确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录,并输出为查询结果;
所述查询单元,还用于基于所述查询条件,确定数据库基表中的待查询基表以及与所述待查询基表对应的删除表;确定所述待查询基表中与所述查询条件相匹配且记录的标识不在所述与所述待查询基表对应的删除表的记录;
该装置还用于:
确定对数据库基表中的记录执行的指定操作,所述记录为数据库对应的数据源中一行信息的一组完整的相关信息;
基于所述指定操作更新所述数据库的基表中存储的记录和/或删除表存储的记录的标识,所述删除表用于存储与删除表对应的基表中被删除记录的标识;其中,更新步骤包括:解析用户输入的指定操作,获取数据库中待修改的基表的标识、待修改记录的标识、待写入记录;然后基于解析出的信息,执行修改记录的操作;
更新元数据表中记录的更新后的基表和/或删除表的有效长度。
10.根据权利要求9所述的装置,其特征在于,还包括:第一撤销单元;
所述第一撤销单元,用于在接收到用于撤销所述删除操作的指令时,将所述元数据表存储的所述基表对应的删除表的有效长度恢复为执行所述删除操作前的有效长度,并删除所述基表对应的删除表中的所述第一记录的标识。
11.根据权利要求9所述的装置,其特征在于,还包括:第二撤销单元;
所述第二撤销单元,用于在接收到用于撤销所述更新操作的指令时,将所述元数据表存储的基表和所述基表对应的删除表的有效长度恢复为执行所述更新操作前的有效长度,并删除所述基表中的第三记录和所述基表对应的删除表中的所述第二记录的标识。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述数据库为分布式数据库,所述基表为非关系型分布式数据库的数据表。
13.一种数据库记录维护装置,其特征在于,包括:存储器和处理器,其中:
存储器,用于存放程序;
处理器,用于执行所述存储器存放的程序,并具体执行:
根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数;
根据对数据库基表中的第二记录的更新操作,在所述基表对应的删除表中增加所述第二记录的标识;
在所述基表中写入所述第二记录更新后的第三记录;
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度;
确定对数据库基表中的记录的查询操作,所述查询操作中携带有查询条件;
确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录,并输出为查询结果;
确定对数据库基表中的记录执行的指定操作,所述记录为数据库对应的数据源中一行信息的一组完整的相关信息;
基于所述指定操作更新所述数据库的基表中存储的记录和/或删除表存储的记录的标识,所述删除表用于存储与删除表对应的基表中被删除记录的标识;其中,更新步骤包括:解析用户输入的指定操作,获取数据库中待修改的基表的标识、待修改记录的标识、待写入记录;然后基于解析出的信息,执行修改记录的操作;
更新元数据表中记录的更新后的基表和/或删除表的有效长度;
所述确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录包括:
基于所述查询条件,确定数据库基表中的待查询基表以及与所述待查询基表对应的删除表;
确定所述待查询基表中与所述查询条件相匹配且记录的标识不在所述与所述待查询基表对应的删除表的记录。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
根据对数据库基表中的第一记录的删除操作,在所述基表对应的删除表中增加所述第一记录的标识;
修改所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度,所述有效长度用于表示对应的表的有效记录数;
根据对数据库基表中的第二记录的更新操作,在所述基表对应的删除表中增加所述第二记录的标识;
在所述基表中写入所述第二记录更新后的第三记录;
修改所述基表及所述基表对应的删除表在元数据表中对应记录的有效长度,所述元数据表用于存储基表和删除表的有效长度;
确定对数据库基表中的记录的查询操作,所述查询操作中携带有查询条件;
确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录,并输出为查询结果;
确定对数据库基表中的记录执行的指定操作,所述记录为数据库对应的数据源中一行信息的一组完整的相关信息;
基于所述指定操作更新所述数据库的基表中存储的记录和/或删除表存储的记录的标识,所述删除表用于存储与删除表对应的基表中被删除记录的标识;其中,更新步骤包括:解析用户输入的指定操作,获取数据库中待修改的基表的标识、待修改记录的标识、待写入记录;然后基于解析出的信息,执行修改记录的操作;
更新元数据表中记录的更新后的基表和/或删除表的有效长度;
所述确定数据库基表中与所述查询条件相匹配且记录的标识不在删除表中的记录包括:
基于所述查询条件,确定数据库基表中的待查询基表以及与所述待查询基表对应的删除表;
确定所述待查询基表中与所述查询条件相匹配且记录的标识不在所述与所述待查询基表对应的删除表的记录。
CN201710633565.7A 2017-07-28 2017-07-28 一种数据库记录的维护方法和装置 Active CN107609011B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710633565.7A CN107609011B (zh) 2017-07-28 2017-07-28 一种数据库记录的维护方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710633565.7A CN107609011B (zh) 2017-07-28 2017-07-28 一种数据库记录的维护方法和装置

Publications (2)

Publication Number Publication Date
CN107609011A CN107609011A (zh) 2018-01-19
CN107609011B true CN107609011B (zh) 2020-07-28

Family

ID=61060071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710633565.7A Active CN107609011B (zh) 2017-07-28 2017-07-28 一种数据库记录的维护方法和装置

Country Status (1)

Country Link
CN (1) CN107609011B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101473B (zh) * 2018-08-09 2022-07-19 北京百度网讯科技有限公司 用于处理二维数据表的方法和装置
CN109241061B (zh) * 2018-09-14 2022-02-11 上海新炬网络信息技术股份有限公司 用于Oracle数据库Truncate操作的保护方法
CN111752956B (zh) * 2019-03-26 2023-12-08 华为技术有限公司 实体的关联变更方法及装置、电子设备
CN112860686B (zh) * 2019-11-28 2023-03-10 金篆信科有限责任公司 数据处理方法、装置、计算机设备和计算机可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117203B2 (en) * 2003-12-03 2006-10-03 International Business Machines Corporation Content addressable data storage and compression for semi-persistent computer memory for a database management system
CN101197754A (zh) * 2007-12-27 2008-06-11 腾讯科技(深圳)有限公司 分布式系统、分布式业务处理方法及相关装置
CN102142206A (zh) * 2010-01-29 2011-08-03 株式会社电装 地图数据、储存介质和导航装置
CN103838878A (zh) * 2014-03-27 2014-06-04 无锡天脉聚源传媒科技有限公司 一种分布式音视频处理系统及处理方法
CN106126708A (zh) * 2016-06-30 2016-11-16 乐视控股(北京)有限公司 一种删除终端存储的文件的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117203B2 (en) * 2003-12-03 2006-10-03 International Business Machines Corporation Content addressable data storage and compression for semi-persistent computer memory for a database management system
CN101197754A (zh) * 2007-12-27 2008-06-11 腾讯科技(深圳)有限公司 分布式系统、分布式业务处理方法及相关装置
CN102142206A (zh) * 2010-01-29 2011-08-03 株式会社电装 地图数据、储存介质和导航装置
CN103838878A (zh) * 2014-03-27 2014-06-04 无锡天脉聚源传媒科技有限公司 一种分布式音视频处理系统及处理方法
CN106126708A (zh) * 2016-06-30 2016-11-16 乐视控股(北京)有限公司 一种删除终端存储的文件的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
地理空间数据版本管理技术的研究;丁昊;《中国优秀硕士学位论文全文数据库 基础科学辑》;20120215(第2期);第A008-27页 *

Also Published As

Publication number Publication date
CN107609011A (zh) 2018-01-19

Similar Documents

Publication Publication Date Title
US9953102B2 (en) Creating NoSQL database index for semi-structured data
CN107609011B (zh) 一种数据库记录的维护方法和装置
CN111104392B (zh) 一种数据库迁移方法、装置、电子设备及存储介质
US20170091041A1 (en) Method and apparatus for transferring data between databases
CN107977396B (zh) 一种KeyValue数据库的数据表的更新方法与表数据更新装置
US9384202B1 (en) Gateway module to access different types of databases
CN111124474B (zh) 一种api版本控制方法及装置
JP2011175422A (ja) 判定プログラム、方法及び装置
CN106897342B (zh) 一种数据校验方法和设备
US8667010B2 (en) Database table partitioning allowing overlaps used in full text query
CN111708787A (zh) 多中心业务数据管理系统
CN107451204B (zh) 一种数据查询方法、装置及设备
CN108073595B (zh) 一种在olap数据库实现数据更新和快照的方法及装置
CN112948473A (zh) 数据仓库的数据处理方法、装置、系统及存储介质
CN114297204A (zh) 一种异构数据源的数据存储、检索方法及装置
US9747295B1 (en) Updating a large dataset in an enterprise computer system
CN110019357B (zh) 数据库查询脚本生成方法及装置
CN107562533B (zh) 一种数据加载处理方法及装置
CN110851437A (zh) 一种存储方法、装置及设备
CN114564501A (zh) 一种数据库数据存储、查询方法、装置、设备及介质
CN115328950A (zh) 一种基于二级索引的hbase查询方法、终端设备及存储介质
CN113268483A (zh) 请求处理方法和装置、电子设备和存储介质
CN114297236A (zh) 一种数据血缘分析方法、终端设备及存储介质
CN113849482A (zh) 一种数据迁移方法、装置及电子设备
CN113760875A (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100081 No.101, 1st floor, building 14, 27 Jiancai Chengzhong Road, Haidian District, Beijing

Patentee after: Beijing PERCENT Technology Group Co.,Ltd.

Address before: 100081 16 / F, block a, Beichen Century Center, building 2, courtyard 8, Beichen West Road, Chaoyang District, Beijing

Patentee before: BEIJING BAIFENDIAN INFORMATION SCIENCE & TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address