【技术实现步骤摘要】
动态分库路由的方法和装置
本专利技术涉及计算机
,尤其涉及一种动态分库路由的方法和装置。
技术介绍
随着互联网,尤其是移动互联网的发展,移动应用数量出现爆发式的增长、用户数量也出现了前所未有的规模,十亿级的用户千亿级的数据量比比皆是。IT技术团队,几乎都会遇到数据量巨大、业务查询缓慢、大数据量占用大量存储、磁盘IO并发量大等问题。一般来说,Mysql单库超过5000万条记录,Oracle单库超过1亿条记录,DB压力就很大,当然容量大小和具体业务、字段数量、访问模式、数据内容等都有进一步关系。如果仅仅是查询缓慢,可以先从sql优化、缓存、读写分离等手段解决。当数据量增长超过单库限制时,很容易出现性能问题,会自然而想到分库分表存储数据,即sharding。现有技术中一般采用垂直切分或者水平切分的方式进行分库分表。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:1.垂直切分只能解决基于垂直切分模型的动态路由,切分达到一定程度之后,扩展性会遇到限制;2.水平切分只能解决 ...
【技术保护点】
1.一种动态分库路由的方法,其特征在于,包括:/n获取数据实体的动态配置信息,所述动态配置信息包括:分库模式、垂直切分规则、水平切分规则和全局索引表;/n若所述数据实体的分库模式是垂直分库,则根据所述垂直切分规则确定与待处理数据对应的数据分表;若所述数据实体的分库模式是水平分库,则根据所述水平切分规则和所述全局索引表确定与所述待处理数据对应的数据分表;/n建立与所述数据分表的连接,以实现分库路由。/n
【技术特征摘要】
1.一种动态分库路由的方法,其特征在于,包括:
获取数据实体的动态配置信息,所述动态配置信息包括:分库模式、垂直切分规则、水平切分规则和全局索引表;
若所述数据实体的分库模式是垂直分库,则根据所述垂直切分规则确定与待处理数据对应的数据分表;若所述数据实体的分库模式是水平分库,则根据所述水平切分规则和所述全局索引表确定与所述待处理数据对应的数据分表;
建立与所述数据分表的连接,以实现分库路由。
2.如权利要求1所述的方法,其特征在于,根据所述水平切分规则和所述全局索引表确定与所述待处理数据对应的数据分表,包括:
判断所述待处理数据的检索词是否是分库主键;
若是,则直接根据所述水平切分规则确定与所述待处理数据对应的数据分表;
否则,从所述全局索引表中查询与所述检索词对应的分库主键,然后根据所述分库主键和所述水平切分规则确定与所述待处理数据对应的数据分表。
3.如权利要求2所述的方法,其特征在于,所述水平切分规则包括:按照哈希分片的切分规则,按照时间切片的切分规则。
4.如权利要求1所述的方法,其特征在于,所述方法是在数据DAO层实现的。
5.一种动态分库路由的装置,其特征在于,包括:
获取模块,获取数据实体的动态配置信息,所述动态配置信息包括:分库模式、垂直切分规则、水平切分规则和全局索引表;
路由模块,若所述数据实体的分库模式是垂直分库,则根据所...
【专利技术属性】
技术研发人员:范雄健,陈大平,程明远,苏贤杰,范玄,黄瑾,周小聪,
申请(专利权)人:中国建设银行股份有限公司,建信金融科技有限责任公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。