CN103488644B - 进行数据存储的方法及数据库系统 - Google Patents
进行数据存储的方法及数据库系统 Download PDFInfo
- Publication number
- CN103488644B CN103488644B CN201210193639.7A CN201210193639A CN103488644B CN 103488644 B CN103488644 B CN 103488644B CN 201210193639 A CN201210193639 A CN 201210193639A CN 103488644 B CN103488644 B CN 103488644B
- Authority
- CN
- China
- Prior art keywords
- database
- user
- data
- storage
- primary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种进行数据存储的方法,应用在包括主数据库及与所述主数据库连接的至少一个第一数据库的数据存储系统中,所述方法包括:获得第一用户的第一数据存储请求;基于所述第一数据存储请求,判断所述第一用户是否为新用户;在所述第一用户为新用户时,基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库;获得来自所述第一用户的数据,并将所述数据存储在所述归属数据库中。
Description
技术领域
本发明涉及数据存储领域,具体涉及一种进行数据存储的方法以及一种数据库系统。
背景技术
随着移动通信网、互联网和广电网之间的飞速发展和不断融合,人们越来越依赖网络,如此,导致网络中的为用户提供服务的服务器需要存储的用户的数量就会越来越大,而且存储的数据也会越来越大。例如:互联网的论坛,随着注册用户的增多以及用户发帖的数量增多,为所述论坛提供服务的服务器需要存储的用户注册信息和用户数据也会随之增加。
但本申请发明人在实现本申请实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
在利用多个数据库来存储用户数据时,通常是通过对用户的ID进行取模,将所述用户的数据存储到对应的数据库中,当用来存储用户数据的数据库的数量一旦有所变化,则每个用户的对应的数据库就会发生变化。比如:假设最开始有50个数据库用来存储用户数据,将所述50个数据库进行0~49进行编号,而对一个第一用户的ID进行取模后得到数值为51,则所述第一用户的数据存储到编号为1的数据库中,但增加一个数据库来存储用户数据时,则所述第一用户对应编号为0的数据库中,导致用户对应的数据库发生改变。如此,导致现有存储系统的扩展性不足。
另外,在有大量用户存储数据时,在对用户的ID进行取模,将所述用户的数据存储到对应的数据库中时,由于用户的ID的不确定性,会促使在一些数据库同时需要存储大量的用户数据,不仅会导致所述多个数据库中每个数据库中存储的数据不均衡,还会促使需要同时存储大量用户数据的数据库出现丢失用户数据问题。
发明内容
本申请实施例通过提供一种进行数据存储的方法以及一种数据库系统,解决了现有技术中在采用多个数据库存储大量用户数据时,扩展性不足以及所述多个数据库中用户数据分布不均匀和丢失所述用户数据的问题,实现了在所述多个数据库中每个数据库中存储的用户数据的均衡分布,减少了用户数据丢失的概率,并能提高在使用所述多个数据库存储数据的扩展性。
本申请实施例提供了一种进行数据存储的方法,应用在包括主数据库及与所述主数据库连接的至少一个第一数据库的数据存储系统中,所述方法包括:
获得第一用户的第一数据存储请求;
基于所述第一数据存储请求,判断所述第一用户是否为新用户;
在所述第一用户为新用户时,基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库;
获得来自所述第一用户的数据,并将所述数据存储在所述归属数据库中。
可选的,所述基于所述第一数据请求,判断所述第一用户是否为新用户,具体包括:获取所述第一用户的第一身份识别参数;检测所述第一身份识别参数是否存储在所述主数据库中,从而判断出所述第一用户是否为新用户。
可选的,所述基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库,具体包括:获取所述至少一个第一数据库中每个第一数据库的权重;基于所述每个第一数据库的权重,从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库。
可选的,所述获取所述至少一个第一数据库中每个第一数据库的权重,具体包括:获取所述至少一个第一数据库中每个第一数据库存储的用户参数;基于所述用户参数,按一预设规则,获取所述至少一个第一数据库中每个第一数据库的权重。
可选的,所述方法还包括:获取所述主数据库存储的存储数据量;判断所述存储数据量是否达到一预设数值;在所述存储数据量达到所述预设数值时,在所述主数据库中创建至少一个第二分表;获取当前需要存储到所述主数据中的记录数据;将所述记录数据存储到所述至少一个第二分表的其中一个分表中。
可选的,所述方法还包括:获得所述至少一个第一数据库中每个第一数据库的用于评价存储性能的参数值;基于每一个所述至少一个第一数据库的参数值,判断所对应的每一个所述至少一个第一数据库的存储性能是否达到一预设阀值;在所述至少一个第一数据库中有一个第一数据库的存储性能达到所述预设阀值时,创建至少一个与所述主数据库连接的第二数据库。
在上述方法的基础上,本发明还提供了一种数据库系统,包括:
主数据库;
至少一个第一数据库,与所述主数据库连接;
其中,所述主数据库在基于获得的第一用户的第一数据存储请求,判断出所述第一用户为新用户时,能基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库,所述归属数据库用于存储来自所述第一用户的数据。
可选的,所述系统设置有新用户判断单元,用于获取所述第一用户的第一身份识别参数,检测所述第一身份识别参数是否存储在所述主数据库中,从而判断出所述第一用户是否为新用户。
可选的,所述系统设置有归属数据库获取单元,用于获取所述至少一个第一数据库中每个第一数据库的权重,再基于所述每个第一数据库的权重,从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库。
可选的,所述归属数据库获取单元设置有权重获取子单元,用于获取所述至少一个第一数据库中每个第一数据库存储的用户相关参数,再基于所述用户参数,按一预设规则,获取所述至少一个第一数据库中每个第一数据库的权重。
可选的,所述系统还设置有分表创建单元,用于获取所述主数据库存储的存储数据量并判断所述存储数据量是否达到一预设数值,在所述存储数据量达到所述预设数值时,在所述主数据库中创建至少一个第二分表;获取当前需要存储到所述主数据中的记录数据,并将所述记录数据存储到所述至少一个第二分表的其中一个分表中。
可选的,所述系统设置有数据库创建单元,用于获得所述至少一个第一数据库中每个第一数据库的用于评价存储性能的参数值,再基于每一个所述至少一个第一数据库的参数值,判断所对应的每一个所述至少一个第一数据库的存储性能是否达到一预设阀值,在所述至少一个第一数据库中有一个第一数据库的存储性能达到所述预设阀值时,创建至少一个与所述主数据库连接的第二数据库。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
其一、由于采用了在所述新用户需要在至少一个数据库中存储数据时,是基于所述至少一个第一数据库中每个第一数据库的权重来从所述至少一个第一数据库中确定一个数据存储归属数据库,用于存储所述新用户的存储数据,因此,能够有效解决现有技术中在存储大量用户数据时,每个数据库中存储数据不均衡以及会出现丢用户数据的问题,进而实现了在存储大量用户数据时,每个数据库中存储数据的均衡分布;另外,一个用户对应一个归属数据库,在数据库的数量进行改变时,用户对应的归属数据库不会改变,从而提高了数据存储的扩展性,提高了存储效率。
其二、由于所述每个第一数据库的权重是基于所述每个第一数据库存储的用户参数来确定的,而存储所述用户参数越小的第一数据库其所占的权重越大,而新用户会有更大的几率存储到权重值越大的数据库中,随着存储的用户量以及数据量的增大,每个分库中存储的用户量和数据量会越来越均衡。
其三、由于采用了通过判断所述主数据库中存储的存储数据量与一预设数值进行比较的方式来确定在所述主数据库中是否创建第二分表,能够提高设置有所述主数据库的服务器响应用户的速度,进一步提高查询数据的性能。
附图说明
图1为本申请实施例中进行数据存储方法的流程图;
图2为本申请实施例中在主数据创建分表的流程图;
图3为本申请实施例中创建分数据库的流程图。
具体实施方式
本申请实施例通过提供一种进行数据存储的方法以及一种数据库系统,解决了现有技术中在采用多个数据库存储大量用户数据时,扩展性不足以及所述多个数据库中用户数据分布不均匀和丢失所述用户数据的问题,实现了在所述多个数据库中每个数据库中存储的用户数据的均衡分布,减少了用户数据丢失的概率,并能提高在使用所述多个数据库存储数据的扩展性。
本申请实施例的技术方案为解决上述区分存储问题,总体思路如下:
通过获得的第一用户的第一数据存储请求,基于所述第一数据存储请求,判断所述第一用户是否为新用户,在所述第一用户为新用户时,再基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库,最后获得来自所述第一用户的数据,并将所述数据存储在所述归属数据库中。
在为所述新用户分配所述归属数据库时,是基于一预设规则来从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库,可以实现在存储大量用户数据时,每个数据库中存储数据的均衡分布,并且能够有效减少丢失用户数据的概率。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本申请实施例提供了一种进行数据存储的方法,应用在包括主数据库及与所述主数据库连接的至少一个第一数据库的数据存储系统中,如图1所示,包括以下步骤:
S101、获得第一用户的第一数据存储请求:
具体来讲,当所述第一用户需要存储数据时,就会将所述第一数据存储请求发送给所述主数据库,所述主数据库对所述第一数据存储请求进行响应。
S102、对所述第一用户进行判断:
具体来讲,基于所述第一数据存储请求,判断所述第一用户是否为新用户,在获取所述第一数据请求之后,对所述第一数据请求进行分析,获取所述第一用户的身份识别参数,检测所述第一身份识别参数是否存储在所述主数据库中,若在所述主数据库中能够查找到所述第一身份识别参数,则执行步骤S206;若在所述主数据库中查找不到所述第一身份识别参数,则执行步骤S203。所述第一用户发送的所述第一数据请求时,会将所述第一用户的IP地址和MAC地址等数据存入到所述第一数据存储请求中,所述主数据库对所述第一数据存储请求进行解析,得到所述第一用户的IP地址和MAC地址等数据,即得到所述第一用户的第一身份识别参数,而所述主数据中都会存储用户信息,若在所述用户信息中查找与所述第一身份识别参数相同的第一用户信息,则可以确定所述第一用户不是新用户;若在所述用户信息中查找不到与所述第一身份识别参数相同的信息,则可以确定所述第一用户为新用户。
S103、获得一个第一数据库作为所述第一用户的数据存储归属数据库:
具体来讲,在所述第一用户为新用户时,基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库。
表1
数据库 | 存储的用户量 | 权重值 |
A | 4 | 20% |
B | 4 | 20% |
C | 2 | 27% |
D | 0 | 33% |
在具体实现中,当所述第一用户为新用户时,获取所述至少一个数据库中每个数据库的权重,基于所述每个第一数据库的权重,从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库。而所述获取所述至少一个第一数据库中每个第一数据库的权重,是通过获取所述至少一个第一数据库中每个第一数据库存储的用户参数;基于所述用户参数,按一预设规则,获取所述至少一个第一数据库中每个第一数据库的权重。比如,如表1所示,数据库A、数据库B、数据库C和数据库D这4个分数据库与一主数据库相连,在所述4个分数据库存储用户的数据,其中,所述数据库A中存储有4个用户的数据,所述数据库B存储有4个用户的数据,所述数据库C存储有2个用户的数据,所述数据库D没有存储用户的数据,获取所述4个分数据库中用户量的总和为:4+4+2+0=10,为确保数据库存储的用户量越少其所占权重越大,因此需反减数据库,所述数据库A的反减后的用户量为:10-4=6;所述数据库B的反减后的用户量为:10-4=6;所述数据库C的反减后的用户量为:10-2=8;所述数据库D的反减后的用户量为:10-0=10;再获取反减数据库后的所述4个分数据库的数据量的总和为::6+6+8+10=30;最后得到所述4个分数据库中每个数据库的权重值,所述数据库A的权重为:6/30=0.2,即所述数据库A为20%;所述数据库B的权重为:6/30=0.2,即所述数据库B为20%;所述数据库C的权重为:8/30=0.267,即所述数据库C为27%;所述数据库D的权重为:10/30=0.333,即所述数据库D为33%。得到所述权重值,所述权重值表示每100次随机数中出现的几率,比如将所述数据库A取值为1-20,所述数据库B取值为21-40;所述数据库C取值为41-67;所述数据库D取值为68-100;每次有新用户需要存储到所述4个分数据库中时,从1-100中随机一个第一数字,基于所述第一数字,判断所述新用户应该存入哪个数据库中。如此,会促使新用户会有更大的几率存储到权重值越大的数据库中,随着存储的用户量的增大,每个分库中存储的用户量会越来越均衡。
此外,所述用户参数不仅包括数据库存储的用户量,还包括所述数据库存储的数据量,同上述一样,根据所述4个分数据库中存储的数据量来获取每个数据库的权重,基于所述权重,给新用户分配一个归属数据库来存储所述新用户的数据。
再者,所述主数据库中主要存储所述4个分数据库分库地址,权重大小,用户信息及用户所在库的对应信息,在有新用户需要存储数据时,所述主数据库会根据存储的每个分数据库的权重,为所述新用户分配一个所述归属数据库来存储所述新用户的数据。
S104、获取来自所述第一用户的数据:
具体来讲,在所述第一用户发送所述第一数据存储请求时,就会将需要进行存储数据的相关信息加入到所述第一数据存储请求中,通过对所述第一数据存储请求进行解析,就会得到所述存储数据的相关信息,基于所述相关信息,获取来自所述第一用户的数据。
S105、将所述数据存储到所述归属数据库中:
具体来讲,由于在步骤S203中为所述第一用户分配了一个所述归属数据库,因此,将获取来自所述第一用户的数据存储到所述归属数据库中。
S106、获得与所述第一身份识别参数对应第一存储数据库:
具体来讲,在获取所述第一用户的第一身份识别参数之后,所述第一身份识别参数是存储在所述主数据库中的,如此,可以基于所述第一身份识别参数,从所述数据库中查找与所述第一身份识别参数对应的第一存储数据库。
在具体实现中,由于所述主数据库中存储了分数据库分库地址,权重大小,用户信息及用户所在库的对应信息,因此,可以通过所述第一身份识别参数在所述主数据中查找到所述与所述第一身份识别参数对应的第一存储数据库以及所述第一存储数据库的地址,用于将获取来自所述第一用户的数据,存储到所述第一存储数据库中。
S107、获得所述第一用户的第一数据,并将所述第一数据存储到所述第一存储数据库中:
具体来讲,通过所述第一存储请求可以得到所述第一数据的存储地址,根据所述第一数据的存储地址就可以获得所述第一数据,并将所述第一数据存储到所述第一存储数据库中。
在具体实现过程中,在所述至少一个第一数据库中每个第一数据库中能够存储多个用户的数据,但一个用户的数据只能存储到一个第一数据库中,如此,促使每个用户只能对应一个第一数据库,为管理用户数据提供方便。
此外,随着存储到分数据库的用户量的增多,导致所述主数据库存放的用户信息和库对应的关系也越来越多,随着所述主数据库的存储的数据量达到一定程度时,由于所述主数据库都是只用一个第一分表来存储所述数据量,因此,不仅会导致所述主数据库不能快速响应用户的请求,还可能导致丢失用户数据的问题以及设置有所述主数据库的服务器崩溃的危险,为解决上述问题,本申请实施例采用以下步骤来解决上述问题,如图2所示,包括:
S201、获取所述主数据库存储的存储数据量:
具体来讲,通过对所述主数据库中存储的数据进行统计,就可以获取所述主数据库存储的存储数据量。
S202、判断所述存储数据量是否达到一预设数值:
具体来讲,通过测试可以得到所述主数据库的所述存储数据量达到一第一数量级,所述主数据库的性能接近瓶颈,将略小于所述第一数量级的参数作为所述预设数值,将所述存储数据量与所述预设数值比较,判断所述存储数据量是否达到所述预设数值。若所述存储数据量达到所述预设数值时,执行步骤S203;若所述存储数据量未达到所述预设数值时,则执行步骤S206。
S203、在所述主数据库中创建至少一个第二分表:
具体来讲,一旦检测到所述主数据库的所述存储数据量达到预设数值时,禁止向所述第一分表中存储数据,并在所述主数据库中创建所述至少一个第二分表,用来存储需要存储到所述主数据库中的数据。
S204、获取当前需要存储到所述主数据库中的记录数据:
具体来讲,由于所有用户的存储请求都会传输到所述主数据库中,在通过所述主数据库为每一个用户分配一个存储服务器,如此,通过所述主数据库就可以获取当前需要存储到所述主数据中的记录数据。
S205、将所述记录数据存储到所述至少一个第二分表的其中一个分表中:
具体来讲,通过步骤S303在所述主数据库中创建所述至少一个第二分表,如此,可以将所述记录数据存储到所述至少一个第二分表的其中一个分表中。
在具体实现中,在所述主数据库中创建所述至少一个第二分表,对所述至少一个第二分表进行排序,基于所述排序的结果,在所述至少一个第二分表中依次存满每一个第二分表。比如:在所述主数据库中创建了一个第二分表a和一个第二分表b,所述第二分表a排在所述第二分表b的前面,那么在所述第二分表a中存满所述记录数据后,才在所述第二分表b存入所述记录数据。当然,也可以在所述至少一个分表中同时存入不同的所述记录数据。
S206、获取当前需要存储到所述主数据库中的记录数据:
具体来讲,所述步骤S306与所述步骤S304完全相同,在此就不再叙述了。
S207、将所述记录数据存储到所述第一分表中:
具体来讲,由于所述第一分表中存储的存储数据量并没有达到所述预设的数值,对所述主数据库并没有造成影响,因此,可以将所述记录数据存储到所述第一分表中。
再者,本申请实施例还提供了一种方法,如图3所示,包括以下步骤:
S301、获得所述至少一个第一数据库中每个第一数据库的用于评价存储性能的参数值:
数据库 | 已用存储空间 | 全部存储空间 | 参数值 |
a | 100G | 500G | 100/500*100=20 |
b | 200G | 800G | 200/800*100=25 |
c | 400G | 1000G | 400/1000*100=40 |
具体来讲,获取所述至少一个第一数据库中每个第一数据库的存储的第一数据量或第一用户量,基于所述第一数据量或所述第一用户量,获得所述至少一个第一数据库中每个第一数据库的用于评价存储性能的参数值。比如,如表2所示,数据库a的用于评价存储性能的参数值为20,数据库b的用于评价存储性能的参数值为25,数据库c的用于评价存储性能的参数值为40。同理,基于所述第一用户量,也能获取所述至少一个第一数据库中每个第一数据库的用于评价存储性能的参数值。
S302、基于每一个所述至少一个第一数据库的参数值,判断所对应的每一个所述至少一个第一数据库的存储性能是否达到一预设阀值;
具体来讲,由于所述至少一个第一数据库的每个第一数据库的存储空间的容量会有所不同,导致所述每个第一数据库的预设阀值会不一样,就需要对所述每个第一数据库设置不同的预设阀值,将所述每一个所述至少一个第一数据库的参数值与对应的所述每一个所述至少一个第一数据库对应的预设阀值进行比较,从而判断出所对应的每一个所述至少一个第一数据库的存储性能是否达到一预设阀值。比如,如表2所示,所述数据库a、b和c的存储空间不同,那么可能导致数据库a中所有的存储空间都存储也不会影响数据库的性能,如此,所述数据库a的预设阀值就可以设置为100,而所述数据库b和c的存储空间较大,那么可能导致所述数据库b的预设阀值就是95,而所述数据库c的预设阀值就是92。在所述至少一个第一数据库中有一个第一数据库的存储性能达到所述预设阀值时,执行步骤S403;在所述至少一个第一数据库中没有一个第一数据库的存储性能没有达到所述预设阀值时,不做任何其他操作。
S303、创建至少一个与所述主数据库连接的第二数据库:
具体来讲,在所述至少一个第一数据库中有一个第一数据库的存储性能达到所述预设阀值时,会导致所述至少一个第一数据库中能够存储数据的数据库的数量减少了一个,当所述至少一个第一数据库中数据库的数量本身就很少时,减少了一个数据库的数量会导致其他数据库存储数据的压力增大,为防止这种问题,创建至少一个与所述主数据库连接的第二数据库。
在上述方法的基础之上,本申请实施例还提供了一种数据库系统,包括:
主数据库;
至少一个第一数据库,与所述主数据库连接;
其中,所述主数据库在基于获得的第一用户的第一数据存储请求,判断出所述第一用户为新用户时,能基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库,所述归属数据库用于存储来自所述第一用户的数据。
所述系统设置有新用户判断单元,用于获取所述第一用户的第一身份识别参数,检测所述第一身份识别参数是否存储在所述主数据库中,从而判断出所述第一用户是否为新用户。
所述系统设置有数据存储单元,在所述第一用户不为新用户时,用于获取所述第一用户的第一身份识别参数,再基于所述第一身份识别参数,从所述主数据中查找与所述第一身份识别参数对应的第一存储数据库,并将获取所述第一用户需要存储的第一数据存储到所述第一存储数据库中。
所述系统设置有归属数据库获取单元,用于获取所述至少一个第一数据库中每个第一数据库的权重,再基于所述每个第一数据库的权重,从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库。
所述归属数据库获取单元设置有权重获取子单元,用于获取所述至少一个第一数据库中每个第一数据库存储的用户相关参数,再基于所述用户参数,按一预设规则,获取所述至少一个第一数据库中每个第一数据库的权重。
所述系统还设置有分表创建单元,用于获取所述主数据库存储的存储数据量并判断所述存储数据量是否达到一预设数值,在所述存储数据量达到所述预设数值时,在所述主数据库中创建至少一个第二分表;获取当前需要存储到所述主数据中的记录数据,并将所述记录数据存储到所述至少一个第二分表的其中一个分表中。
所述系统设置有数据库创建单元,用于获得所述至少一个第一数据库中每个第一数据库的用于评价存储性能的参数值,再基于每一个所述至少一个第一数据库的参数值,判断所对应的每一个所述至少一个第一数据库的存储性能是否达到一预设阀值,在所述至少一个第一数据库中有一个第一数据库的存储性能达到所述预设阀值时,创建至少一个与所述主数据库连接的第二数据库。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
其一、由于采用了在所述新用户需要在至少一个数据库中存储数据时,是基于所述至少一个第一数据库中每个第一数据库的权重来从所述至少一个第一数据库中确定一个数据存储归属数据库,用于存储所述新用户的存储数据,因此,能够有效解决现有技术中在存储大量用户数据时,每个数据库中存储数据不均衡以及会出现丢用户数据的问题,进而实现了在存储大量用户数据时,每个数据库中存储数据的均衡分布;另外,一个用户对应一个归属数据库,在数据库的数量进行改变时,用户对应的归属数据库不会改变,从而提高了数据存储的扩展性,提高了存储效率。
其二、由于所述每个第一数据库的权重是基于所述每个第一数据库存储的用户参数来确定的,而存储所述用户参数越小的第一数据库其所占的权重越大,而新用户会有更大的几率存储到权重值越大的数据库中,随着存储的用户量以及数据量的增大,每个分库中存储的用户量和数据量会越来越均衡。
其三、由于采用了通过判断所述主数据库中存储的存储数据量与一预设数值进行比较的方式来确定在所述主数据库中是否创建第二分表,能够提高设置有所述主数据库的服务器响应用户的速度,进一步提高查询数据的性能。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种进行数据存储的方法,应用在包括主数据库及与所述主数据库连接的至少一个第一数据库的数据存储系统中,其特征在于,所述方法包括:
获得第一用户的第一数据存储请求;
基于所述第一数据存储请求,判断所述第一用户是否为新用户;
在所述第一用户为新用户时,基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库;
获得来自所述第一用户的数据,并将所述数据存储在所述归属数据库中;
其中,所述基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库,具体包括:
获取所述至少一个第一数据库中每个第一数据库的权重;
基于所述每个第一数据库的权重,从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库。
2.如权利要求1所述的方法,其特征在于,所述基于所述第一数据请求,判断所述第一用户是否为新用户,具体包括:
获取所述第一用户的第一身份识别参数;
检测所述第一身份识别参数是否存储在所述主数据库中,从而判断出所述第一用户是否为新用户。
3.如权利要求1所述的方法,其特征在于,所述获取所述至少一个第一数据库中每个第一数据库的权重,具体包括:
获取所述至少一个第一数据库中每个第一数据库存储的用户参数;
基于所述用户参数,按一预设规则,获取所述至少一个第一数据库中每个第一数据库的权重。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述主数据库存储的存储数据量;
判断所述存储数据量是否达到一预设数值;
在所述存储数据量达到所述预设数值时,在所述主数据库中创建至少一个第二分表;
获取当前需要存储到所述主数据库中的记录数据;
将所述记录数据存储到所述至少一个第二分表的其中一个分表中。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
获得所述至少一个第一数据库中每个第一数据库的用于评价存储性能的参数值;
基于每一个所述至少一个第一数据库的参数值,判断所对应的每一个所述至少一个第一数据库的存储性能是否达到一预设阀值;
在所述至少一个第一数据库中有一个第一数据库的存储性能达到所述预设阀值时,创建至少一个与所述主数据库连接的第二数据库。
6.一种数据库系统,其特征在于,包括:
主数据库;
至少一个第一数据库,与所述主数据库连接;
其中,所述主数据库在基于获得的第一用户的第一数据存储请求,判断出所述第一用户为新用户时,能基于一预设规则从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库,所述归属数据库用于存储来自所述第一用户的数据;
其中,所述系统设置有归属数据库获取单元,用于获取所述至少一个第一数据库中每个第一数据库的权重,再基于所述每个第一数据库的权重,从所述至少一个第一数据库中确定一个第一数据库作为所述第一用户的数据存储归属数据库。
7.如权利要求6所述的系统,其特征在于,所述系统设置有新用户判断单元,用于获取所述第一用户的第一身份识别参数,检测所述第一身份识别参数是否存储在所述主数据库中,从而判断出所述第一用户是否为新用户。
8.如权利要求6所述的系统,其特征在于,所述归属数据库获取单元设置有权重获取子单元,用于获取所述至少一个第一数据库中每个第一数据库存储的用户参数,再基于所述用户参数,按一预设规则,获取所述至少一个第一数据库中每个第一数据库的权重。
9.如权利要求6所述的系统,其特征在于,所述系统还设置有分表创建单元,用于获取所述主数据库存储的存储数据量并判断所述存储数据量是否达到一预设数值,在所述存储数据量达到所述预设数值时,在所述主数据库中创建至少一个第二分表;获取当前需要存储到所述主数据库中的记录数据,并将所述记录数据存储到所述至少一个第二分表的其中一个分表中。
10.如权利要求6所述的系统,其特征在于,所述系统设置有数据库创建单元,用于获得所述至少一个第一数据库中每个第一数据库的用于评价存储性能的参数值,再基于每一个所述至少一个第一数据库的参数值,判断所对应的每一个所述至少一个第一数据库的存储性能是否达到一预设阀值,在所述至少一个第一数据库中有一个第一数据库的存储性能达到所述预设阀值时,创建至少一个与所述主数据库连接的第二数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210193639.7A CN103488644B (zh) | 2012-06-12 | 2012-06-12 | 进行数据存储的方法及数据库系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210193639.7A CN103488644B (zh) | 2012-06-12 | 2012-06-12 | 进行数据存储的方法及数据库系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488644A CN103488644A (zh) | 2014-01-01 |
CN103488644B true CN103488644B (zh) | 2017-12-15 |
Family
ID=49828884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210193639.7A Active CN103488644B (zh) | 2012-06-12 | 2012-06-12 | 进行数据存储的方法及数据库系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103488644B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202084A (zh) * | 2015-04-30 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 数据存储方法和数据存储装置 |
CN106202099B (zh) * | 2015-05-05 | 2019-11-12 | 北京国双科技有限公司 | 网站日志中访客信息的识别方法及装置 |
CN106294421B (zh) * | 2015-05-25 | 2020-02-04 | 阿里巴巴集团控股有限公司 | 一种数据写入、读取方法及装置 |
CN106484714B (zh) * | 2015-08-27 | 2019-06-21 | 阿里巴巴集团控股有限公司 | 一种行为记录的存储方法和设备 |
CN105812189B (zh) * | 2016-04-26 | 2019-06-28 | 努比亚技术有限公司 | 一种信息处理方法及服务器 |
CN106600329A (zh) * | 2016-12-15 | 2017-04-26 | 广州四三九九信息科技有限公司 | 一种分享过程的统计方法和设备 |
CN110851853A (zh) * | 2019-09-18 | 2020-02-28 | 平安科技(深圳)有限公司 | 一种数据隔离方法、装置、计算机设备及存储介质 |
CN111429137A (zh) * | 2020-03-17 | 2020-07-17 | 深圳市随金科技有限公司 | 一种模块化数据采集方法、装置、服务器和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1256889A2 (en) * | 2001-05-08 | 2002-11-13 | Solid Information Technology Oy | Method and arrangement for the management of database schemas |
CN101754169A (zh) * | 2008-12-02 | 2010-06-23 | 中兴通讯股份有限公司 | 一种归属位置寄存器受理指令的业务管理方法及其系统 |
CN102104617A (zh) * | 2010-11-30 | 2011-06-22 | 厦门雅迅网络股份有限公司 | 一种网站运营系统存储海量图片数据的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009004620A2 (en) * | 2007-07-03 | 2009-01-08 | Xeround Systems Ltd. | Method and system for data storage and management |
-
2012
- 2012-06-12 CN CN201210193639.7A patent/CN103488644B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1256889A2 (en) * | 2001-05-08 | 2002-11-13 | Solid Information Technology Oy | Method and arrangement for the management of database schemas |
CN101754169A (zh) * | 2008-12-02 | 2010-06-23 | 中兴通讯股份有限公司 | 一种归属位置寄存器受理指令的业务管理方法及其系统 |
CN102104617A (zh) * | 2010-11-30 | 2011-06-22 | 厦门雅迅网络股份有限公司 | 一种网站运营系统存储海量图片数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103488644A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488644B (zh) | 进行数据存储的方法及数据库系统 | |
CN104348679B (zh) | 一种分桶测试的方法、装置和系统 | |
CN106779910B (zh) | 配送订单分配方法和装置 | |
CN108197285A (zh) | 一种数据推荐方法以及装置 | |
JP6243045B2 (ja) | グラフデータクエリ方法および装置 | |
CN105550175B (zh) | 恶意账户识别方法及装置 | |
US20170132264A1 (en) | Trajectory Data Query Method and Apparatus | |
CN103679498B (zh) | 一种对网络终端的信息推送方法及其系统 | |
CN107483381A (zh) | 关联账户的监控方法及装置 | |
CN104320492A (zh) | 网站服务器调度方法和装置 | |
CN102651876A (zh) | 实现物理小区标识配置的方法及系统 | |
CN103945238B (zh) | 一种基于用户行为的社区探测方法 | |
Planche et al. | In vitro combination of anidulafungin and voriconazole against intrinsically azole-susceptible and-resistant Aspergillus spp | |
CN106296095A (zh) | 一种基于智慧仓储的物资调配方法和设备 | |
CN105893471A (zh) | 一种数据处理方法及电子设备 | |
CN105872082A (zh) | 基于容器集群负载均衡算法的细粒度资源响应系统 | |
CN103810208B (zh) | 一种类目映射方法及装置 | |
CN105718539B (zh) | 一种数据库应用方法及装置 | |
CN112396300A (zh) | 客服资源分配方法、装置以及存储介质、电子设备 | |
CN105099753B (zh) | 网络管理系统及其处理业务的方法 | |
CN104484357B (zh) | 数据处理方法及装置和访问频次信息处理方法及装置 | |
CN107770296A (zh) | 分配地址的方法及装置 | |
CN104298596B (zh) | 一种测试方案随机分配方法、装置及服务器 | |
CN110765221A (zh) | 时空轨迹数据的管理方法和装置 | |
CN103546522B (zh) | 确定存储服务器的方法及分布式存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |