数据库的分库分表方法及装置制造方法及图纸

技术编号:25835044 阅读:25 留言:0更新日期:2020-10-02 14:16
本发明专利技术公开了一种数据库的分库分表方法及装置,涉及大数据技术领域,主要在于能够实现分库分表组件与业务代码的彻底分离,便于后期对分库分表组件和业务代码的维护,分库分表操作更加简单。其中方法包括:利用预设分库分表注解获取待执行方法对应的分库分表参数,其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法;根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表。本发明专利技术适用于数据库的分库分表。

【技术实现步骤摘要】
数据库的分库分表方法及装置
本专利技术涉及大数据
,尤其是涉及一种数据库的分库分表方法及装置。
技术介绍
随着时间和业务的发展,数据库中数据量的增长是不可控的,数据库和表中的数据会越来越大,随之带来的是更高的磁盘、系统开销,甚至出现数据库性能上的瓶颈,因此需要对数据库和表进行拆分,从而更好的提供数据服务。本申请的专利技术人在研究中发现,通常使用自主开发的数据库中间件来实现对海量数据的分库分表,例如,DBProxy,sharding-JDBC等,然而,现有的数据库中间件,其分库分表的技术框架与业务代码相关,在性能上具有业务倾向性,且使用时需要研究业务代码,因此使用比较复杂,此外,现有的数据库中间件使用时会侵入业务代码,对于后期业务代码和中间件的维护不是很方便。
技术实现思路
本专利技术提供了一种数据库的分库分表方法及装置,主要在于能够实现分库分表组件与业务代码的彻底分离,便于后期对分库分表组件和业务代码的维护,分库分表操作更加简单。根据本专利技术的第一个方面,提供一种数据库的分库分表方法,包括:利用预设分库分表注解获取待执行方法对应的分库分表参数,其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法;根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表。根据本专利技术的第二个方面,提供一种数据库的分库分表装置,包括:获取单元,用于利用预设分库分表注解获取待执行方法对应的分库分表参数,其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法;确定单元,用于根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表。根据本专利技术的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:利用预设分库分表注解获取待执行方法对应的分库分表参数,其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法;根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表。根据本专利技术的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:利用预设分库分表注解获取待执行方法对应的分库分表参数,其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法;根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表。本专利技术提供的一种数据库的分库分表方法及装置,与目前分库分表中间件与业务代码严重耦合的情况相比,本专利技术能够利用预设分库分表注解获取待执行方法对应的分库分表参数,其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法;并根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表,从而能够实现分库分表组件与业务代码的彻底分离,便于后期对分库分表组件和业务代码的维护,分库分表操作更加简单,同时该分库分表组件能够适用于各种业务场景,分库分表规则可灵活变更,可扩展性较强。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1示出了本专利技术实施例提供的一种数据库的分库分表方法流程图;图2示出了本专利技术实施例提供的另一种数据库的分库分表方法流程图;图3示出了本专利技术实施例提供的一种数据库的的分库分表装置的结构示意图;图4示出了本专利技术实施例提供的另一种数据库的的分库分表装置的结构示意图;图5示出了本专利技术实施例提供的一种计算机设备的实体结构示意图。具体实施方式下文中将参考附图并结合实施例来详细说明本专利技术。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。目前,现有的数据库中间件,其分库分表的技术框架与业务代码相关,使用比较复杂,且现有的数据库中间件使用时会侵入业务代码,对于后期业务代码和中间件的维护不是很方便。为了解决上述问题,本专利技术实施例提供了一种数据库的分库分表方法,如图1所示,所述方法包括:101、利用预设分库分表注解获取待执行方法对应的分库分表参数。其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法,待执行方法为需要进行分库分表操作的方法,例如,对某数据库中某数据表的增删查改,目前为了避免由于业务数据量过大而造成的数据库性能瓶颈,会对数据库进行分库分表处理,由此能够缓解数据库的压力,但是现有的分库分表中间件多与业务代码相关,操作繁琐,不便于后期对业务代码和中间件的维护,因此,为了实现分库分表组件与业务代码的彻底分离,本专利技术实施例应用面向切面编程的思想构建独立于业务代码的分库分表组件,并定义该分库分表组件对应的分库分表注解,例如,@Rounting(filedId=“userId”),同时将定义好的分库分表注解加载到需要进行分库分表操作的方法前面,即加载在待执行方法前面,因此在调取待执行方法时,会优先读取该分库分表注解对应的分库分表组件,实现分库分表功能,确定待执行方法中操作数据所涉及的目标数据库和目标数据表,之后在确定的目标数据库和目标数据表中执行该方法,即实现对该目标数据库和目标数据表的增删查改,由此不仅能够实现分库分表功能,还实现了分库分表组件与业务代码的彻底分离。进一步地,具体在创建分库分表组件时,根据业务需求定义分库分表场景,该分库分表场景具体包括:一库多表、多库一表和多表多表等场景,当业务数据量比较大时,为了防止造成业务数据库性能的瓶颈可以选择多库多表的方式,例如,用户数据和订单数据,这种数据量较大的业务数据可以采用多库多表的场景,当业务数据量相对较少但为了保证数据库的性能,可以选择一库多表的场景和多库一表的场景。进一步地,根据确定的分库分表场景,在业务代码的配置文件中配置涉及分库分表的数据库、数据库表、路由字段、表后缀、分库分表策略和数据源等,例如,针对多库多表的场景,pingan.dsroutingset.dataSourceNum=3,配置数据库的个数为3;pingan.dsroutingset.tableNum=4,配置数据库中数据表的个数为4;pingan.dsroutingset.rountingFiled=userId,配置分库分表的路由字段为用户ID;pingan.dsroutingset.tableSuffixStyle=%04d,配置数据表的后缀%04d,;pingan.dsroutingset.tableSuffixConnect=_,设置连接符号;p本文档来自技高网...

【技术保护点】
1.一种数据库的分库分表方法,其特征在于,包括:/n利用预设分库分表注解获取待执行方法对应的分库分表参数,其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法;/n根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表。/n

【技术特征摘要】
1.一种数据库的分库分表方法,其特征在于,包括:
利用预设分库分表注解获取待执行方法对应的分库分表参数,其中,所述预设分库分表注解对应的分库分表组件独立于所述待执行方法;
根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表。


2.根据权利要求1所述的方法,其特征在于,所述根据所述分库分表参数对应的参数值和所述分库分表组件中的预设分库分表规则,确定所述待执行方法中操作数据对应的目标数据库和目标数据表,包括:
获取所述分库分表组件中所涉及的各个数据库对应的特征值;
根据所述参数值和预设分库分表规则计算所述分库分表参数对应的数据库匹配值;
将所述数据库匹配值与所述各个数据库对应的特征值进行匹配,根据匹配结果确定所述待执行方法中操作数据对应的目标数据库;
根据所述目标数据库中各个数据表对应的特征值和所述参数值,确定所述待执行方法中操作数据对应的目标数据表。


3.根据权利要求2所述的方法,其特征在于,所述根据所述目标数据库中各个数据表对应的特征值和所述参数值,确定所述待执行方法中操作数据对应的目标数据表,包括:
根据所述参数值和所述预设分库分表规则计算所述分库分表参数对应的数据表匹配值;
将所述数据表匹配值与所述各个数据表对应的特征值进行匹配,根据匹配结果确定所述待执行方法中操作数据对应的目标数据表。


4.根据权利要求2所述的方法,其特征在于,所述获取所述分库分表组件中所涉及的各个数据库对应的特征值,包括:
获取所述分库分表组件中所涉及的数据库的总数量;
根据所述数据库的总数量,确定所述各个数据库对应的特征值。


5.根据权利要求4所述的方法,其特征在于,所述预设分库分表规则为预设哈希算法,所述根据所述参数值和预设分库分表规则计算所述分库分表参数对应的数据库匹配值,包括:
根据所述参数值和所述预设哈希算法...

【专利技术属性】
技术研发人员:胡泽成
申请(专利权)人:平安医疗健康管理股份有限公司
类型:发明
国别省市:上海;31

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

1