[发明专利]数据库横向扩展、数据表访问方法及装置有效
申请号: | 201911360402.1 | 申请日: | 2019-12-25 |
公开(公告)号: | CN111125114B | 公开(公告)日: | 2023-06-16 |
发明(设计)人: | 冯世杰;杨鸿飞 | 申请(专利权)人: | 中国建设银行股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 赵平;周永君 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 横向 扩展 数据表 访问 方法 装置 | ||
本发明提供一种数据库横向扩展、数据表访问方法及装置,通过将数据表分表,并生成每个分表的路由地址,进而可以在截获到获取数据表请求中的路由地址后该些原数据表的路由地址,从而不需要对程序应用层进行改写,只需要设置执行本发明步骤的中间件即可实现数据库的扩展,不改变访问数据库的方式,尽量屏蔽分布分表的细节,使用成本低,能提高数据处理效率,同时支持数据库的水平扩展,提高了数据处理效率。
技术领域
本发明涉及数据处理领域,更具体的,涉及一种数据库横向扩展方法、数据表访问方法及装置。
背景技术
随着行业业务的发展,出现很多大表,表的记录行数几亿,甚至达到几十亿,数据库处理能力达到了极限,如基金确认表、纪念币的预约兑换表。单一服务器的处理能力是有限的,不管如何优化,总会达到上限,限制了单位时间内事务处理能力。在并发量达到一定程度后,无法极限增长,严重影响用户体验,并且所有业务数据存放到一个库中,存在单点故障风险。本专利提供了一种关系型数据库横向扩展能力,将我们的数据分布到多个库中,从而解决单一数据库所性能瓶颈,更好的满足客户体验提升和缓解业务增长给系统处理带来的压力。
发明内容
为了解决上述问题的至少一个,本发明一个方面实施例提供一种数据库横向扩展方法,包括:
获取待切分数据表;
对数据表进行切分,得到多个数据分表;
将所述多个数据分表存储在至少一个数据库中,并生成每个数据分表的分表路由地址;其中,所述分表路由地址被用于在截获到所述待切分数据表的请求指令时,改写所述请求指令中所述待切分数据表的总路由地址为对应多个数据分表的分表路由地址。
在某些实施例中,所述对数据表进行切分,包括:
根据设定的分表键对数据表进行数据切分。
本发明另一个方面实施例提供一种数据表访问方法,包括:
截获数据表访问的请求指令;
改写所述请求指令中所述数据表的总路由地址为对应多个数据分表的分表路由地址;所述多个数据分表通过对所述数据表进行切分得到。
在某些实施例中,所述路由地址包括用于锚定数据库的库序号和用于锚定数据表的表序号,所述改写所述请求指令中所述数据表的总路由地址为对应多个数据分表的分表路由地址,包括:
解析所述请求指令,得到数据表的表名;
根据所述表名查找分表策略,并获取对应的分表键和分表数量;
判断所述数据表中是否包含所述分表键;
若包含,根据设定分表对应关系获取所述分表键的键值,结合所述分表数量生成表序号;
根据设定的表序号和库序号的对应关系,依据所述表序号对应查找所述库序号;
用所述表序号和库序号改写所述总路由地址中的表序号和库序号。
在某些实施例中,所述路由地址包括用于锚定数据库的库序号和用于锚定数据表的表序号,所述改写所述请求指令中所述数据表的总路由地址为对应多个数据分表的分表路由地址,包括:
解析所述请求指令,得到数据表的表名;
根据所述表名查找分表策略,并获取对应的分表键、分库键、分表数量以及分库数量;
判断所述数据表中是否包含所述分表键和分库键;
若包含所述分表键和分库键,根据设定分表对应关系和设定分库对应关系获取所述分表键的键值以及分库键的键值,结合所述分表数量和分库数量生成表序号和库序号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司,未经中国建设银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911360402.1/2.html,转载请声明来源钻瓜专利网。