数据行标识的生成方法与查询、分区交换方法及装置制造方法及图纸

技术编号:36875634 阅读:62 留言:0更新日期:2023-03-15 20:32
本说明书提供一种数据行标识的生成方法与查询、分区交换方法及装置,用于为数据库中存储的无主键表内的数据行生成相应的数据行标识,所述无主键表被划分为多个分区;所述方法包括:针对所述无主键表的目标分区,确定所述目标分区中待标记的目标数据行;生成所述目标数据行的数据行标识,所述数据行标识包含所述目标分区至少在所述无主键表中唯一的分区描述信息和所述目标数据行在所述目标分区中的唯一标识。的唯一标识。的唯一标识。

【技术实现步骤摘要】
数据行标识的生成方法与查询、分区交换方法及装置


[0001]本说明书实施例属于数据库
,尤其涉及一种数据行标识的生成方法与查询、分区交换方法及装置。

技术介绍

[0002]主键,即主关键字,是数据表中的一个或多个字段,它的值用于唯一标识表中的数据行。有主键表指的是数据表中包含主键的表,数据库在创建有主键表后,部分数据库将自动为主键列创建一个全局唯一索引,还有一部分数据库把主键作为底层存储引擎的键,这样就可以通过主键快速定位到数据行。无主键表指的是数据表中未指定主键的表,无主键表通常使用数据行标识来快速定位到数据行。
[0003]相关技术中,生成数据行标识的方式有两种:一种数据行标识由数据存储的时间戳和分布式数据库的执行节点ID组成,另一种数据行标识由随机数和数据行在数据表内的唯一标识组成。在使用上述两种数据行标识进行数据行查询时,需要对全库的数据行进行二分查询,查询效率低。

技术实现思路

[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]图1a是一示例性实施例提供的一种数据行标识的示意图。
[0033]图1b是一示例性实施例提供的另一种数据行标识的示意图。
[0034]图2是一示例性实施例提供的一种数据库存储方案的示意图。
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据行标识的生成方法,用于为数据库中存储的无主键表内的数据行生成相应的数据行标识,所述无主键表被划分为多个分区;所述方法包括:针对所述无主键表的目标分区,确定所述目标分区中待标记的目标数据行;生成所述目标数据行的数据行标识,所述数据行标识包含所述目标分区至少在所述无主键表中唯一的分区描述信息和所述目标数据行在所述目标分区中的唯一标识。2.根据权利要求1所述的方法,所述分区描述信息包括:所述目标分区的分区ID;或者,所述目标分区在所述多个分区中的分区序号。3.根据权利要求1所述的方法,所述目标行在所述目标分区中的唯一标识包括:所述目标分区中的自增列针对所述目标数据行产生的序列号。4.根据权利要求3所述的方法,所述无主键表的每个分区分别按照LSM树的结构进行组织;其中,所述自增列为所述目标分区内的rowkey列。5.根据权利要求1所述的方法,还包括:获取查询请求,所述查询请求包括待查询数据行的数据行标识,所述待查询数据行为所述数据库存储的任一数据行或多个数据行;根据所述待查询数据行的数据行标识包含的分区描述信息,确定所述待查询数据行对应的分区;从所述待查询数据行的数据行标识中,读取所述待查询数据行在确定出的分区中的唯一标识,并从所述确定出的分区中查找到所述待查询数据行。6.根据权利要求1所述的方法,所述数据库存储有无主键表和分区描述信息的映射关系,所述分区描述信息在所述数据库中全局唯一;所述方法还包括:获取分区交换请求,所述分区交换请求用于请求将属于不同的无主键表的第一分区和第二分区进行分区交换;在所述无主键表和分区的映射关系中,将所述第一分区对应的分区描述信息与所述第二分区对应的分区描述信息互换。7.一种查询方法,用于对数据库中存储的无主键表内的数据行进行查询,所述无主键表被划分为多个分区;所述方法包括:获取查询请求,所述查询请求包括待查询数据行的数据行标识,所述待查询数据行为所述数据库存储的任一数据行或多个数据行,所述数据行标识包含所述待查询数据行对应的分区至少在所述无主键表中唯一的分区描述信息和所述待查询数据行在所述待查询数据行对应的分区中的唯一标识;根据所述待查询数据行的数据行标识包含的分区描述信息,确定所述待查询数据行对应的分区;从所述待查询数据行的数据行标识中,读取所述待查询数据行在确定出的分区中的唯一标识,并从所述确定出的分区中查找到所述待查询数据行。8.一种分区交换方法,用于对数据库中存储的不同的无主键表内待交换的分区进行分区交换,每一无主键表被划分为多个分区,每一数据行对应有数据行标识,所述数据行标...

【专利技术属性】
技术研发人员:李洪嵚谢振江赵裕众杨佳伟王桃
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1