数据库表的分片方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:35173993 阅读:24 留言:0更新日期:2022-10-12 17:39
本申请涉及一种数据库表的分片方法、装置、计算机设备和存储介质。所述方法包括:针对原始数据表中的每行,确定所述行在所述原始数据表中的各分片属性列下的分片属性值;根据与各分片属性列所代表的分片属性对应的分片策略,对所述行在所述分片属性列下的分片属性值进行计算,得到所述行对应的多个子分片标识;将同一行对应的多个子分片标识进行组合,得到每行的分片组合标识;根据每行的分片组合标识,确定每行对应的分片标识;将所述原始数据表中每行中的数据,写入至每行对应的分片标识所表征的分片表中。采用本方法能够提高分片性能。能。能。

【技术实现步骤摘要】
数据库表的分片方法、装置、计算机设备和存储介质


[0001]本申请涉及计算机
,特别是涉及一种数据库表的分片方法、装置、计算机设备和存储介质。

技术介绍

[0002]当系统使用到一定阶段,数据库的数据表中会积累大量数据,使得数据表中的行数会非常多,影响数据表的使用。因此,在实际应用中常常会对数据表进行分片,即,以行作为单位对原始数据表中的数据进行拆分,将原始数据表拆分为多个分片表。但是目前针对原始数据表的拆分一般是采用统一的分片策略来将原始数据表中各行进行拆分,然后将每行中的数据写入至该行对应的分片表中,采用统一的分片策略所适用的业务场景单一,拆分得到的分片表在使用过程中性能不足。

技术实现思路

[0003]基于此,有必要针对上述技术问题,提供一种能够提高分片性能的数据库表的分片方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0004]第一方面,本申请提供了一种数据库表的分片方法。所述方法包括:针对原始数据表中的每行,确定所述行在所述原始数据表中的各分片属性列下的分片属性值;根据与各分片属性列所代表的分片属性对应的分片策略,对所述行在所述分片属性列下的分片属性值进行计算,得到所述行对应的多个子分片标识;将同一行对应的多个子分片标识进行组合,得到每行的分片组合标识;根据每行的分片组合标识,确定每行对应的分片标识;将所述原始数据表中每行中的数据,写入至每行对应的分片标识所表征的分片表中。
[0005]第二方面,本申请还提供了一种数据库表的分片装置。所述装置包括:分片属性值确定模块,用于针对原始数据表中的每行,确定所述行在所述原始数据表中的各分片属性列下的分片属性值;子分片标识计算模块,用于根据与各分片属性列所代表的分片属性对应的分片策略,对所述行在所述分片属性列下的分片属性值进行计算,得到所述行对应的多个子分片标识;组合模块,用于将同一行对应的多个子分片标识进行组合,得到每行的分片组合标识;分片表确定模块,用于根据每行的分片组合标识,确定每行对应的分片标识;写入模块,用于将所述原始数据表中每行中的数据,写入至每行对应的分片标识所表征的分片表中。
[0006]在其中一个实施例中,所述分片表确定模块还用于针对每一行的分片组合标识,
查找与所述分片组合标识对应的分片标识,得到各行对应的分片标识。
[0007]在其中一个实施例中,分片表确定模块还用于若不存在与所述分片组合标识对应的分片标识,则确定针对所述分片组合标识对应添加的新增分片标识;建立对应于所述新增分片标识的新增分片表;所述写入模块还用于将所述原始数据表中所述新增分片标识对应的行中的数据写入至所述新增分片表中。
[0008]在其中一个实施例中,所述分片表确定模块还用于针对每一行的分片组合标识,从分片标识映射表中查找与所述分片组合标识对应的分片标识,得到各行对应的分片标识;所述分片标识映射表,用于记录分片组合标识与分片标识之间的对应关系。
[0009]在其中一个实施例中,所述数据库表的分片装置还包括:查询模块,其中:所述子分片标识计算模块还用于在数据查询阶段,根据与输入的分片属性值所属的分片属性对应的分片策略,将所述输入的分片属性值进行计算,得到目标子分片标识;所述查询模块,用于查找包含所述目标子分片标识的目标分片组合标识;根据所述目标分片组合标识,确定目标分片标识;按照所述输入的分片属性值,从所述目标分片标识所表征的分片表中进行数据查询。
[0010]在其中一个实施例中,所述查询模块还用于从分片标识映射表中,查找与所述目标分片组合标识对应的目标分片标识。
[0011]在其中一个实施例中,所述组合模块还用于将同一行对应的多个子分片标识按照顺序依次进行拼接,得到每行的分片组合标识;所述顺序,是得到所述子分片标识所依据的分片属性值在所述行中的先后顺序。
[0012]第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各实施例所述的数据库表的分片方法中的步骤。
[0013]第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行本申请各实施例所述的数据库表的分片方法中的步骤。
[0014]第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使得所述处理器执行本申请各实施例所述的数据库表的分片方法中的步骤。
[0015]上述数据库表的分片方法、装置、计算机设备、存储介质和计算机程序产品,针对原始数据表中的每行,确定该行在原始数据表中的各分片属性列下的分片属性值,然后根据与各分片属性列所代表的分片属性对应的分片策略,对该行在分片属性列下的分片属性值进行计算,得到该行对应的多个子分片标识,再将同一行对应的多个子分片标识进行组合,得到每行的分片组合标识,根据每行的分片组合标识,确定每行对应的分片标识,最后将原始数据表中每行中的数据,写入至每行对应的分片标识所表征的分片表中。通过将各个分片属性列下的分片属性值采用各自对应的分片策略计算得到的子分片标识,然后进行组合得到分片组合标识,再根据分片组合标识映射得到分片标识,实现了即使对原始数据表中不同分片属性列下的属性值采用不同的分片策略进行计算来进行分片,也能对应地确定出分片表以实现水平分表,避免了统一采用同一分片策略导致分片性能差的问题,使得能够对各个分片属性列灵活地设置对应的分片策略来进行分片,提高了分片性能。
附图说明
[0016]图1为一个实施例中数据库表的分片方法的应用环境图;图2为一个实施例中数据库表的分片方法的流程示意图;图3为一个实施例中分片阶段的整体流程示意图;图4为一个实施例中数据查询阶段的整体流程示意图;图5为一个实施例中数据库表的分片装置的结构框图;图6为另一个实施例中数据库表的分片装置的结构框图;图7为一个实施例中计算机设备的内部结构图。
具体实施方式
[0017]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0018]本申请实施例提供的数据库表的分片方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。用户可以通过终端102对分片属性和各分片属性对应的分片策略进行设置,终端102可以将设置好的分片属性和分片策略发送至服务器104。服务器104可以根据设置好的分片属性和分片策略,执行本申请各实施例中的数据库表的分片方法,以将原始数据表中每行中的数据写入至每行对应的分片标识所表征的分片表中,实现水平分表。在数据查询阶段,用户可以通过终端102输入输入本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库表的分片方法,其特征在于,所述方法包括:针对原始数据表中的每行,确定所述行在所述原始数据表中的各分片属性列下的分片属性值;根据与各分片属性列所代表的分片属性对应的分片策略,对所述行在所述分片属性列下的分片属性值进行计算,得到所述行对应的多个子分片标识;将同一行对应的多个子分片标识进行组合,得到每行的分片组合标识;根据每行的分片组合标识,确定每行对应的分片标识;将所述原始数据表中每行中的数据,写入至每行对应的分片标识所表征的分片表中。2.根据权利要求1所述的方法,其特征在于,所述根据每行的分片组合标识,确定每行对应的分片标识包括:针对每一行的分片组合标识,查找与所述分片组合标识对应的分片标识,得到各行对应的分片标识。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:若不存在与所述分片组合标识对应的分片标识,则确定针对所述分片组合标识对应添加的新增分片标识;建立对应于所述新增分片标识的新增分片表;将所述原始数据表中所述新增分片标识对应的行中的数据写入至所述新增分片表中。4.根据权利要求2所述的方法,其特征在于,所述针对每一行的分片组合标识,查找与所述分片组合标识对应的分片标识,得到各行对应的分片标识包括:针对每一行的分片组合标识,从分片标识映射表中查找与所述分片组合标识对应的分片标识,得到各行对应的分片标识;所述分片标识映射表,用于记录分片组合标识与分片标识之间的对应关系。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在数据查询阶段,根据与输入的分片属性值所属的分片属性对应的分片策略,对所述输入的分片属性值进行计算,得到目标子分片标识;查找包含所述目标子分片标识的目标...

【专利技术属性】
技术研发人员:张金锋郑政芳李坤镇
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:

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

1