数据库分库分表的方法及装置与流程

文档序号:26843343发布日期:2021-10-08 23:41阅读:145来源:国知局
数据库分库分表的方法及装置与流程

1.本发明涉及大数据技术领域,尤其涉及数据库分库分表的方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.在实际生活中,数据库中的数据量不一定是可控的,在数据库未进行分库分表的情况下,随着时间的增长和系统业务量的不断发展壮大,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;而且,服务器的资源是有限的,最终数据库所承载的数据量、数据处理能力都将遭遇瓶颈,此时,就需要对数据库分库分表来解决这些问题。现有数据库分表分库方案有垂直切分和水平切分两种方案,在有新的数据需要入库入表时,原有数据和新数据都需要重新分配,将对应数据分配到对应数据库表,处理流程复杂,处理效率很低,耗费大量人力物力。


技术实现要素:

4.本发明实施例提供一种数据库分库分表的方法,用以提高数据库分库分表的效率,简化处理流程,该方法包括:
5.接收第一数据信息;
6.根据第一数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第一数据信息的业务主键对应自增主键;
7.根据第一数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第一数据信息的业务主键对应自增主键对应的数据库位置;
8.将第一数据信息,存入第一数据信息的业务主键对应自增主键对应的数据库位置。
9.本发明实施例还提供一种数据库分库分表的装置,用以提高数据库分库分表的效率,简化处理流程,该装置包括:
10.数据接收模块,用于接收第一数据信息;
11.第一自增主键确定模块,用于根据第一数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第一数据信息的业务主键对应自增主键;
12.第一位置确定模块,用于根据第一数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第一数据信息的业务主键对应自增主键对应的数据库位置;
13.数据存储模块,用于将第一数据信息,存入第一数据信息的业务主键对应自增主键对应的数据库位置。
14.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库分库
分表的方法。
15.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库分库分表的方法的计算机程序。
16.本发明实施例中,接收第一数据信息;根据第一数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第一数据信息的业务主键对应自增主键;根据第一数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第一数据信息的业务主键对应自增主键对应的数据库位置;将第一数据信息,存入第一数据信息的业务主键对应自增主键对应的数据库位置,与现有技术中垂直切分或水平切分进行分库分表的技术方案相比,通过业务主键与自增主键的映射关系以及自增主键与分库分表规则的映射关系,在有新增的数据信息需要入库入表时,原有的数据信息无需重新分配,新增的数据信息按照自增的方式分配到对应数据库表,可以提高数据库分库分表的效率,简化处理流程。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
18.图1为本发明实施例中数据库分库分表的方法的流程图;
19.图2为本发明实施例中数据库分库分表的方法的一具体实例的流程图;
20.图3为本发明实施例中数据库分库分表的方法的一具体实例的流程图;
21.图4为本发明实施例中数据库分库分表的方法的一具体实例的流程图;
22.图5为本发明实施例中数据库分库分表的装置的结构示意图;
23.图6为本发明实施例中数据库分库分表的装置的一具体实例的结构示意图;
24.图7为本发明实施例中数据库分库分表的装置的一具体实例的结构示意图;
25.图8为本发明实施例中数据库分库分表的装置的一具体实例的结构示意图。
具体实施方式
26.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
27.为了提高数据库分库分表的效率,简化处理流程,本发明实施例中通过业务主键与自增主键的映射关系以及自增主键与分库分表规则的映射关系,使新增的数据信息按照自增的方式分配到对应数据库表。图1为本发明实施例中数据库分库分表的方法的流程图。如图1所示,本发明实施例中数据库分库分表的方法,可以包括:
28.步骤101、接收第一数据信息;
29.步骤102、根据第一数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第一数据信息的业务主键对应自增主键;
30.步骤103、根据第一数据信息的业务主键对应自增主键,以及自增主键与分库分表
规则的映射关系,确定第一数据信息的业务主键对应自增主键对应的数据库位置;
31.步骤104、将第一数据信息,存入第一数据信息的业务主键对应自增主键对应的数据库位置。
32.由图1所示流程可以得知,本发明实施例的数据库分库分表不同于现有技术中垂直切分或水平切分进行分库分表的技术方案,是通过业务主键与自增主键的映射关系以及自增主键与分库分表规则的映射关系,在有新增的数据信息需要入库入表时,原有的数据信息无需重新分配,新增的数据信息按照自增的方式分配到对应数据库表,可以提高数据库分库分表的效率,简化处理流程。
33.在一个实施例中,接收第一数据信息,可以是:数据库接收来自dbms(database management system,数据库管理系统)的第一数据信息,dbms是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,用户通过dbms访问数据库中的数据,数据库管理员通过dbms进行数据库的维护,dbms可以支持多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。例如,数据库接收来自dbms的第一数据信息为增加数据信息。
34.在一个实施例中,在接收第一数据信息后,根据第一数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第一数据信息的业务主键对应自增主键。
35.数据信息的业务主键,是指数据信息中在数据库表具有业务逻辑含义的字段,例如,根据第一数据信息的业务主键为:身份证id(identity document,身份证标识号)。
36.在数据库中,存储有按照字段值自动加一的自增主键,第一数据信息的业务主键与自增主键建立一一映射关系,第一数据信息的业务主键对应自增主键就可以确定。
37.例如,在数据库中,存储有字段值为1到1000的1000个自增主键,接收第一数据信息后,根据第一数据信息的业务主键id1,以及第一数据信息的业务主键id1与字段值为1的自增主键建立的映射关系,确定第一数据信息的业务主键id1对应的自增主键为字段值为1的自增主键。
38.在一个实施例中,在根据第一数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第一数据信息的业务主键对应自增主键后,根据第一数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第一数据信息的业务主键对应自增主键对应的数据库位置。比如,根据第一数据信息的业务主键id1对应的字段值为1的自增主键,以及字段值为1的自增主键与分库分表规则的映射关系,确定第一数据信息的业务主键id1对应字段值为1的自增主键对应的数据库位置。
39.在一个实施例中,在步骤103中,分库分表规则,可以包括:每一数据分库大小,和每一数据分表大小。例如,分库分表规则可以是对数据库进行分库分表,每一数据分库大小可以是将数据库每个库的容量大小设置为定值,每一数据分表大小可以是将每个表的容量大小设置为定值。分库分表规则可以是分库分表规则表,存储在数据库或缓存中。分库分表规则表中还可以描述:与数据库存储数据信息数目相同的自增主键,每一个自增主键与每一数据分表中每一行数据信息都建立一一映射的关系,其中,自增主键可以按照字段值自动加一的形式自增。
40.比如,每一数据分库大小为10000,有两个数据库为第一库和第二库,每一数据分表大小为5000,一个数据库有两个数据表,第一库的两个数据表为第一表和第二表,第二库
的两个数据表为第三表和第四表,分库分表规则表存储在数据库中,自增主键在分库分表规则表存中描述为:字段值为1~10000的自增主键映射第一库,字段值为1~5000的自增主键映射第一表,字段值为5001~10000的自增主键映射第二表;字段值为10001~20000的自增主键映射第二库,字段值为10001~15000的自增主键映射第三表,字段值为15000~20000的自增主键映射第四表。
41.在一个实施例中,在根据第一数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第一数据信息的业务主键对应自增主键对应的数据库位置后,将第一数据信息,存入第一数据信息的业务主键对应自增主键对应的数据库位置。例如,将第一数据信息,存入第一数据信息的业务主键id1对字段值为1的自增主键对应的数据库位置,比如存入第一库。
42.图2为本发明实施例中数据库分库分表的方法的一具体实例的流程图。如图2所示,本发明实施例中数据库分库分表的方法,还可以包括:
43.步骤201、接收对第二数据信息的查询请求;
44.步骤202、根据第二数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第二数据信息的业务主键对应自增主键;
45.步骤203、根据第二数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第二数据信息的业务主键对应自增主键对应的数据库位置;
46.步骤204、从第二数据信息的业务主键对应自增主键对应的数据库位置,查询第二数据信息。
47.由图2所示流程可以得知,本发明实施例的数据库分库分表,在查询数据库中存储的数据信息时,是通过业务主键与自增主键的映射关系以及自增主键与分库分表规则的映射关系,从自增主键对应的数据库位置,查询数据信息,可以实现对数据库中数据信息的高效查询。
48.在一个实施例中,接收对第二数据信息的查询请求,可以是:数据库接收对dbms中第二数据信息的查询请求,例如,数据库接收对dbms中第二数据信息的查询请求,例如可以是请求查询身份证id信息。
49.举一例,根据第二数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第二数据信息的业务主键对应自增主键,例如可以是,根据第二数据信息的业务主键id1,以及业务主键id1与自增主键的映射关系,确定第二数据信息的业务主键id1对应的自增主键为字段值为1的自增主键。
50.在一个实施例中,在根据第二数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第二数据信息的业务主键对应自增主键后,根据第二数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第二数据信息的业务主键对应自增主键对应的数据库位置。例如,根据第二数据信息的业务主键id1对应的自增主键1,以及自增主键1与分库分表规则表的映射关系,确定第二数据信息的业务主键id1自增主键1对应的数据库位置为第一库的第一表的第一行。
51.在一个实施例中,在根据第二数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第二数据信息的业务主键对应自增主键对应的数据库位置后,从第二数据信息的业务主键对应的自增主键对应的数据库位置,查询第二数据信息。
例如,从第二数据信息的业务主键id1对应的自增主键1对应的第一库的第一表的第一行中,查询第二数据信息为请求查询身份证id信息。
52.图3为本发明实施例中数据库分库分表的方法的一具体实例的流程图。如图3所示,本发明实施例中数据库分库分表的方法,还可以包括:
53.步骤301、接收业务主键与自增主键的映射关系的第一更新请求;
54.步骤302、根据第一更新请求,更新业务主键与自增主键的映射关系。
55.由图3所示流程可以得知,本发明实施例中,可以根据需求对业务主键与自增主键的映射关系进行更新。
56.在一个实施例中,接收业务主键与自增主键的映射关系的第一更新请求,可以是:请求新增业务主键,建立新增业务主键与自增主键的映射关系。例如,请求新增姓名为业务主键,建立新增的姓名业务主键与自增主键的映射关系。
57.在一个实施例中,在接收业务主键与自增主键的映射关系的第一更新请求后,根据第一更新请求,更新业务主键与自增主键的映射关系。例如,根据业务主键与自增主键的映射关系的第一更新请求,新增姓名业务主键,并建立新增的姓名业务主键与自增主键的映射关系。
58.图4为本发明实施例中数据库分库分表的方法的一具体实例的流程图。如图4所示,本发明实施例中数据库分库分表的方法,还可以包括:
59.步骤401、接收自增主键与分库分表规则的映射关系的第二更新请求;
60.步骤402、根据第二更新请求,更新自增主键与分库分表规则的映射关系。
61.由图4所示流程可以得知,本发明实施例中,可以根据需求对自增主键与分库分表规则的映射关系进行更新。
62.在一个实施例中,接收自增主键与分库分表规则的映射关系的第二更新请求,可以是:数据库已经存满数据信息,请求新增数据库来保存数据信息。例如,第一库、第二库已经存满了20000条数据信息,再有第20001条数据信息要存储到数据库时,请求新增数据库来保存数据信息,并据此更新自增主键与分库分表规则的映射关系。
63.在一个实施例中,在接收自增主键与分库分表规则的映射关系的第二更新请求后,根据第二更新请求,更新自增主键与分库分表规则的映射关系。例如,新增第三库,更新字段值为20001~30000的自增主键与第三库的映射关系。
64.本发明实施例中还提供了一种数据库分库分表的装置,如下面的实施例所述。由于该装置解决问题的原理与数据库分库分表的方法相似,因此该装置的实施可以参见数据库分库分表的方法的实施,重复之处不再赘述。
65.图5为本发明实施例中数据库分库分表的装置的结构示意图。如图5所示,本发明实施例中数据库分库分表的装置可以包括:
66.数据接收模块501,用于接收第一数据信息;
67.第一自增主键确定模块502,用于根据第一数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第一数据信息的业务主键对应自增主键;
68.第一位置确定模块503,用于根据第一数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第一数据信息的业务主键对应自增主键对应的数据库位置;
69.数据存储模块504,用于将第一数据信息,存入第一数据信息的业务主键对应自增主键对应的数据库位置。
70.图6为本发明实施例中数据库分库分表的装置的一具体实例的结构示意图。如图6所示,图5所示的数据库分库分表的装置还可以包括:
71.数据查询模块601,用于接收对第二数据信息的查询请求;
72.第二自增主键确定模块602,用于根据第二数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第二数据信息的业务主键对应自增主键;
73.第二位置确定模块603,用于根据第二数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第二数据信息的业务主键对应自增主键对应的数据库位置;
74.查询模块604,用于从第二数据信息的业务主键对应自增主键对应的数据库位置,查询第二数据信息。
75.在一个实施例中,分库分表规则,包括:每一数据分库大小,和每一数据分表大小。
76.图7为本发明实施例中数据库分库分表的装置的一具体实例的结构示意图。如图7所示,图5所示数据库分库分表的装置还可以包括:
77.第一更新模块701,用于接收业务主键与自增主键的映射关系的第一更新请求;
78.根据第一更新请求,更新业务主键与自增主键的映射关系。
79.实施例中第一更新模块701也可以包括于图6所示数据库分库分表的装置中。
80.图8为本发明实施例中数据库分库分表的装置的一具体实例的结构示意图。如图8所示,图5所示数据库分库分表的装置还可以包括:
81.第二更新模块801,用于接收自增主键与分库分表规则的映射关系的第二更新请求;
82.根据第二更新请求,更新自增主键与分库分表规则的映射关系。
83.实施例中第二更新模块801也可以包括于图6或图7所示数据库分库分表的装置中。
84.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库分库分表的方法。
85.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库分库分表的方法的计算机程序。
86.本发明实施例中,接收数据信息,其中,数据信息包括:接收第一数据信息;根据第一数据信息的业务主键,以及业务主键与自增主键的映射关系,确定第一数据信息的业务主键对应自增主键;根据第一数据信息的业务主键对应自增主键,以及自增主键与分库分表规则的映射关系,确定第一数据信息的业务主键对应自增主键对应的数据库位置;将第一数据信息,存入第一数据信息的业务主键对应自增主键对应的数据库位置,与现有技术中垂直切分或水平切分进行分库分表的技术方案相比,通过业务主键与自增主键的映射关系以及自增主键与分库分表规则的映射关系,在有新增的数据信息需要入库入表时,原有的数据信息无需重新分配,新增的数据信息按照自增的方式分配到对应数据库表,可以提高数据库分库分表的效率,简化处理流程。
87.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
88.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
89.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
90.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
91.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1