一种数据库的分库分表方法、装置、设备及可读存储介质与流程

文档序号:35819959发布日期:2023-10-22 09:00阅读:24来源:国知局
一种数据库的分库分表方法、装置、设备及可读存储介质与流程

本发明涉及数据处理,特别涉及一种数据库的分库分表方法、装置、设备及可读存储介质。


背景技术:

1、随着商品品类的增多,库存数据会越来越多,对数据库查询和写入操作也会相应比较耗时,一般可以通过分库分表的方式将数据分摊到多张表、多个库上,以降低单个表和单个库的访问压力从而降低访问耗时。当前的分库分表算法一般采用hash(哈希)取模方案。hash是一种算法,该算法将任意长度的输入通过散列算法变换成固定输出。通过对关键字进行hash计算后,得到hash后的值,再和库表数量进行取模,从而确定应该放在哪个库里。但是如果数据库扩容的话,比如4台扩容成8台,这时候路由算法需要从对id(标识号)做hash计算后对4取模变成对id做hash计算后对8取模,会造成原来的数据按照新的路由算法,找不到对应数据,因此扩容后需要迁移部分老数据。

2、因此,当前数据库分库分表方法存在数据扩容时,需要对老数据进行迁移,从而导致数据库分库分表效率较低的技术问题。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种数据库的分库分表方法、装置、设备及可读存储介质,解决了现有技术中数据库的分库分表效率较低的技术问题。

2、为解决上述技术问题,本发明提供了一种数据库的分库分表方法,包括:

3、获取待分库分表数据、待分库分表数据标识号、数据库分组权重分配规则和数据库分表路由规则;其中,所述数据库分组权重分配规则为数据库分组中的数据库个数,以及各个数据库组对应权重的规则;所述数据库分表路由规则为根据数据库分组中表的个数,以及库存数据标识号确定数据库分表的规则;

4、根据所述待分库分表数据标识号利用所述数据库分组权重分配规则确定所述待分库分表数据对应的数据库组号;

5、根据所述待分库分表数据标识号利用所述数据库分表路由规则确定所述待分库分表数据对应的数据库表号。

6、可选的,所述根据所述待分库分表数据标识号利用所述数据库分组权重分配规则确定所述待分库分表数据对应的数据库组号,包括:

7、根据所述数据库分组权重分配规则、所述待分库分表数据标识号利用范围分割方法确定所述数据库组号;其中,所述范围分割方法为利用各个数据库组权重比例对预设分割区间进行分割确定数据对应区间,从而根据标识号确定数据库分组的方法。

8、可选的,所述根据所述待分库分表数据标识号利用所述数据库分表路由规则确定所述待分库分表数据对应的数据库表号,包括:

9、获取所述数据库组号对应的目标表数量;

10、利用所述数据库分表路由规则,对所述待分库分表数据标识号进行哈希运算,并对所述目标表数量取余,确定所述数据库表号。

11、可选的,所述获取待分库分表数据、待分库分表数据标识号、数据库分组权重分配规则和数据库分表路由规则,包括:

12、当确定进行数据库扩容时,获取所述待分库分表数据和所述待分库分表数据标识号,以及根据历史数据库组数量配置的所述数据库分组权重分配规则;其中,所述历史数据库组数量少于所述数据库分组权重分配规则对应的数据库组数量。

13、可选的,在所述根据所述待分库分表数据标识号利用所述数据库分表路由规则确定所述待分库分表数据对应的数据库表号之后,还包括:

14、根据所述数据库组号、所述数据库表号和所述待分库分表数据标识号建立组关系映射表和/或表关系映射表。

15、可选的,所述根据所述数据库组号、所述数据库表号和所述待分库分表数据标识号建立组关系映射表和/或表关系映射表,包括:

16、根据所述待分库分表数据标识号对应的尾号,以及所述数据库组号和所述待分库分表数据标识号建立组关系映射表和/或表关系映射表。

17、可选的,所述根据所述待分库分表数据标识号对应的尾号,以及所述数据库组号和所述待分库分表数据标识号建立组关系映射表和/或表关系映射表,包括:

18、根据所述待分库分表数据标识号确定标识号上限;

19、根据所述标识号上限、所述待分库分表数据标识号对应的尾号,以及所述数据库组号和所述待分库分表数据标识号建立组关系映射表和/或表关系映射表。

20、本发明还提供了一种数据库的分库分表装置,包括:

21、目标内容获取模块,用于获取待分库分表数据、待分库分表数据标识号、数据库分组权重分配规则和数据库分表路由规则;其中,所述数据库分组权重分配规则为数据库分组中的数据库个数,以及各个数据库组对应权重的规则;所述数据库分表路由规则为根据数据库分组中表的个数,以及库存数据标识号确定数据库分表的规则;

22、组号确定模块,用于根据所述待分库分表数据标识号利用所述数据库分组权重分配规则确定所述待分库分表数据对应的数据库组号;

23、表号确定模块,用于根据所述待分库分表数据标识号利用所述数据库分表路由规则确定所述待分库分表数据对应的数据库表号。

24、本发明还提供了一种数据库的分库分表设备,包括:

25、存储器,用于存储计算机程序;

26、处理器,用于执行所述计算机程序时实现上述数据库的分库分表方法的步骤。

27、本发明还提供了一种计算机可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现上述数据库的分库分表方法的步骤。

28、可见,本发明通过获取待分库分表数据、待分库分表数据标识号、数据库分组权重分配规则和数据库分表路由规则;其中,数据库分组权重分配规则为数据库分组中的数据库个数,以及各个数据库组对应权重的规则;数据库分表路由规则为根据数据库分组中表的个数,以及库存数据标识号确定数据库分表的规则。根据待分库分表数据标识号利用数据库分组权重分配规则确定待分库分表数据对应的数据库组号。根据待分库分表数据标识号利用数据库分表路由规则确定待分库分表数据对应的数据库表号。和当前数据库利用hash取模方案在数据库扩容时需要进行数据迁移相比,本发明提供的数据库的分库分表技术方案,只需增加新的数据库分组,为新的数据库分组配置新的权重百分比,新老数据便能各自正确的进行路由,无需进行数据迁移。

29、此外,本发明还提供了一种数据库的分库分表装置、设备及可读存储介质,同样具有上述有益效果。



技术特征:

1.一种数据库的分库分表方法,其特征在于,包括:

2.根据权利要求1所述的数据库的分库分表方法,其特征在于,所述根据所述待分库分表数据标识号利用所述数据库分组权重分配规则确定所述待分库分表数据对应的数据库组号,包括:

3.根据权利要求1所述的数据库的分库分表方法,其特征在于,所述根据所述待分库分表数据标识号利用所述数据库分表路由规则确定所述待分库分表数据对应的数据库表号,包括:

4.根据权利要求1至3任一项所述的数据库的分库分表方法,其特征在于,所述获取待分库分表数据、待分库分表数据标识号、数据库分组权重分配规则和数据库分表路由规则,包括:

5.根据权利要求1所述的数据库的分库分表方法,其特征在于,在所述根据所述待分库分表数据标识号利用所述数据库分表路由规则确定所述待分库分表数据对应的数据库表号之后,还包括:

6.根据权利要求5所述的数据库的分库分表方法,其特征在于,所述根据所述数据库组号、所述数据库表号和所述待分库分表数据标识号建立组关系映射表和/或表关系映射表,包括:

7.根据权利要求6所述的数据库的分库分表方法,其特征在于,所述根据所述待分库分表数据标识号对应的尾号,以及所述数据库组号和所述待分库分表数据标识号建立组关系映射表和/或表关系映射表,包括:

8.一种数据库的分库分表装置,其特征在于,包括:

9.一种数据库的分库分表设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至7任一项所述数据库的分库分表方法的步骤。


技术总结
本发明公开了一种数据库的分库分表方法、装置、设备及可读存储介质,应用于数据处理技术领域,包括:获取待分库分表数据、待分库分表数据标识号、数据库分组权重分配规则和数据库分表路由规则;其中,数据库分组权重分配规则为数据库分组中的数据库个数,以及各个数据库组对应权重的规则;数据库分表路由规则为根据数据库分组中表的个数,以及库存数据标识号确定数据库分表的规则;根据待分库分表数据标识号利用数据库分组权重分配规则和数据库分表路由规则确定数据库组号和数据库表号。本发明提供的数据库的分库分表技术方案,只需增加新的数据库分组,为新的数据库分组配置新的权重百分比,新老数据便能各自正确的进行路由,无需进行数据迁移。

技术研发人员:程天生
受保护的技术使用者:上海微盟企业发展有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1