一种数据库管理方法及电子设备与流程

文档序号:37346252发布日期:2024-03-18 18:21阅读:12来源:国知局
一种数据库管理方法及电子设备与流程

本发明涉及计算机信息系统的数据存储、读取及管理,尤其涉及一种数据库管理方法及电子设备。


背景技术:

1、应用系统管理的数据随业务发展不断膨胀,但是联机交易场景(下称oltp)要求实现数据的实时写入、实时更新、实时读取。一旦业务表的数据量过大,无论是数据的维护更新(crud)、数据结构的变更(比如新增字段或字段宽度变更)都会导致性能问题,同时会引起较大的系统风险,如长时间锁表、慢事务等等。

2、目前,通常是通过哈希算法对数据库进行水平分区,即分库分表,将原本一张表维护的海量数据分配给多个子表即数据分片进行存储和维护。例如,基于数据主键如数据序列号或创建时间进行哈希计算,与实际的数据分片数量进行取余计算并映射,得出具体的数据分片的编号。

3、然而,通过上述方式得到的数据分片存在数据倾斜、故障无法迁移及扩容成本高的问题。


技术实现思路

1、本发明提供一种数据库管理方法及电子设备,用以解决现有技术中通过哈希算法对数据库进行分库分表,导致得到的数据分片存在数据倾斜、故障无法迁移及扩容成本高的缺陷。

2、本发明提供一种数据库管理方法,包括:

3、s1、分别获取数据库中可用库的编号及所述可用库中可用表的编号;

4、s2、基于所述可用库的编号及所述可用库中可用表的编号,得到数据分片的编号序列,所述数据分片为可用库与所述可用库中可用表组成的子数据库,所述数据分片的编号为所述数据分片对应的可用库及所述可用库中可用表的编号组合,所述数据分片的编号序列为所述数据分片的编号的集合;

5、s3、基于所述数据分片的编号序列,按照预定顺序为待存储业务数据分配数据分片的编号;

6、s4、基于所述待存储业务数据对应的数据分片的编号,生成待存储业务数据对应的业务流水号。

7、根据本发明提供的数据库管理方法,还包括:

8、s5、基于所述业务流水号,路由所述待存储业务数据对应的数据分片,并将待存储业务数据写入该数据分片中。

9、根据本发明提供的数据库管理方法,还包括:

10、在可用库中出现故障库的情况下,删除故障库及故障库所对应的数据分片,更新可用库编号;若故障库所在的数据分片的编号已被分配,将该业务数据返回待分配状态重新分配数据分片的编号;执行s1~s5;

11、在可用表中出现故障表的情况下,删除故障表及故障表所对应的数据分片,更新可用表编号;若故障表所在的数据分片的编号已被分配,将该业务数据返回待分配状态重新分配数据分片的编号;执行s1~s5。

12、根据本发明提供的数据库管理方法,还包括:

13、在新增可用库或可用表的情况下,获取所述新增可用库或可用表的编号,将所述新增可用库或可用表的编号加入可用库或可用表的编号中,更新可用库或可用表的编号。

14、根据本发明提供的数据库管理方法,所述s2、基于所述可用库的编号及所述可用库中可用表的编号,得到数据分片的编号序列,包括:

15、s21、将所述可用库的编号与所述可用库中可用表的编号进行笛卡尔积,得到数据分片的编号;

16、s22、将生成的数据分片的编号进行乱序排列,得到数据分片的编号序列。

17、根据本发明提供的数据库管理方法,所述s3、基于所述数据分片的编号序列,按照预定顺序为待存储业务数据分配数据分片的编号,包括:

18、按照所述数据分片的编号序列中数据分片的编号从前到后的顺序,或,

19、按照所述数据分片的编号序列中数据分片的编号从后到前的顺序,或,自定义顺序,为待存储业务数据分配数据分片的编号。

20、根据本发明提供的数据库管理方法,所述s3、基于所述数据分片的编号序列,按照预定顺序为待存储业务数据分配数据分片的编号,还包括:

21、判断待存储业务数据分配的数据分片的编号是否已分配给预设阈值数量的待存储业务数据;

22、在待存储业务数据分配的数据分片的编号已分配给预设阈值数量的待存储业务数据的情况下,跳过所述数据分片的编号,分配下一个数据分片的编号。

23、本发明还提供一种数据库管理装置,包括:

24、获取模块,用于分别获取数据库中可用库的编号及所述可用库中可用表的编号;

25、分片编码序列构建模块,用于基于所述可用库的编号及所述可用库中可用表的编号,得到数据分片的编号序列,所述数据分片为可用库与所述可用库中可用表组成的子数据库,所述数据分片的编号为所述数据分片对应的可用库及所述可用库中可用表的编号组合,所述数据分片的编号序列为所述数据分片的编号的集合;

26、分配模块,用于基于所述数据分片的编号序列,按照预定顺序为待存储业务数据分配数据分片的编号;

27、流水号生成模块,用于基于所述待存储业务数据对应的数据分片的编号,生成待存储业务数据对应的业务流水号;

28、写入模块,用于基于所述业务流水号,路由所述待存储业务数据对应的数据分片,并将待存储业务数据写入该数据分片中。

29、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库管理方法的步骤。

30、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据库管理方法的步骤。

31、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据库管理方法的步骤。

32、本发明提供的数据库管理方法及电子设备,通过获取数据库中可用库的编号和所述可用库中可用表的编号,得到数据分片的编号序列,在生成业务流水号时,按顺序从数据分片的编号序列中获取数据分片的编号,解决了新数据写入时路由结果不均衡导致的数据倾斜问题,从而保证新数据写入时路由结果均衡分布,新增数据能够平均写入各个数据分片中。



技术特征:

1.一种数据库管理方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的数据库管理方法,其特征在于,还包括:

3.根据权利要求1所述的数据库管理方法,其特征在于,还包括:

4.根据权利要求1所述的数据库管理方法,其特征在于,还包括:

5.根据权利要求1所述的数据库管理方法,其特征在于,所述s2、基于所述可用库的编号及所述可用库中可用表的编号,得到数据分片的编号序列,包括:

6.根据权利要求5所述的数据库管理方法,其特征在于,所述s3、基于所述数据分片的编号序列,按照预定顺序为待存储业务数据分配数据分片的编号,包括:

7.根据权利要求6所述的数据库管理方法,其特征在于,所述s3、基于所述数据分片的编号序列,按照预定顺序为待存储业务数据分配数据分片的编号,还包括:

8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述数据库管理方法的步骤。

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

10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据库管理方法的步骤。


技术总结
本发明提供一种数据库管理方法及电子设备,应用于数据库技术领域,所述方法包括:S1、分别获取数据库中可用库的编号及所述可用库中可用表的编号;S2、基于所述可用库的编号及所述可用库中可用表的编号,得到数据分片的编号序列,所述数据分片为可用库与所述可用库中可用表组成的子数据库;S3、基于所述数据分片的编号序列,按照预定顺序为待存储业务数据分配数据分片的编号;S4、基于所述待存储业务数据对应的数据分片的编号,生成待存储业务数据对应的业务流水号。该方法基于定制的业务流水号,能够对数据分片进行快速准确路由,解决了新数据写入时路由结果不均衡导致的数据倾斜问题,从而保证新增数据能够平均写入各个数据分片中。

技术研发人员:张立洋,付敏
受保护的技术使用者:北京理房通支付科技有限公司
技术研发日:
技术公布日:2024/3/17
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1