[发明专利]一种分表方法及其系统有效
申请号: | 201710890427.7 | 申请日: | 2017-09-27 |
公开(公告)号: | CN107766459B | 公开(公告)日: | 2021-03-02 |
发明(设计)人: | 胡亚军;陈伟梁 | 申请(专利权)人: | 天翼商业保理有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 上海光华专利事务所(普通合伙) 31219 | 代理人: | 苗晓娟 |
地址: | 510030 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 方法 及其 系统 | ||
本发明涉及一种分表方法及其系统,该方法包括获取用户的ID号;根据ID号进行维度拆分以及随机拆分,获取表格ID号;将用户数据存储于表格ID号的表格内。本发明通过采用随机拆分以及维度拆分结合的方式进行表格拆分,能极大的提高数据库可用性,当其中一个表格不可用时,可通过随机算法剔除,将该表格内的数据均匀分配到其他表格内,如果某个分表所在的数据源需要做硬件升级等操作,直接把该数据源剔除掉随机算法的随机范围,不停机进行数据库升级,既能完成表格的拆分,又极大提高数据库的可用性,保证数据库的性能,极大减低了停机升级带来的损失。
技术领域
本发明涉及分表方法,更具体地说是指一种分表方法及其系统。
背景技术
随着互联网业务不断发展,互联网数据越来越大,单张的数据库表已经无法满足业务的发展需求,因此,需要进行数据的拆分,当一个表的数据大到无法处理的时候,就需要把它拆成多个表,这是目前互联网公司普遍采用的办法。比如,T_PAY支付表有10个亿的数据,应用处理非常慢,需要对这个表的数据进行拆分,需要拆分成100张表T_PAY_00、T_PAY_01、…、T_PAY_99,这样每张表数据就是1000W,极大提高了程序处理的速度。
对于数据库表的拆分,现有的拆分方法为应用系统根据某个维度拆分数据,常用的是取用户ID最后2位作为拆分维度,如UID=XXXX00的用户,数据落在T_PAY_00,UID=XXXX89的用户,数据落T_PAY_89表格内。但是,这一张表格拆分成多张表格,大表格被拆分成多个小表格,性能虽然提高了,表格的数量也增多了,且每个表格之间都存在着关联部分,任何一张表格出问题,都会导致业务不可用,降低了整个系统的可用性以及系统的性能。
因此,有必要设计一种分表方法,实现既能完成表格的拆分,又极大提高数据库的可用性,保证数据库的性能,极大减低了停机升级带来的损失。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种分表方法及其系统。
为实现上述目的,本发明采用以下技术方案:一种分表方法,所述方法包括:
获取用户的ID号;
根据ID号进行维度拆分以及随机拆分,获取表格ID号,其中,所述步骤如下
获取用户ID号的最后两位数;
根据所述用户ID号的最后两位数,进行随机运算,获取随机数;
将所述用户ID号的最后两位数与随机数组合,形成新数字;
获取新数字中的两位数字,形成表格ID号;
将用户数据存储于所述表格ID号的表格内。
其进一步技术方案为:将所述用户ID号的最后两位数与随机数组合,形成新数字的步骤,具体是按照用户ID号的最后两位数在前以及随机数在后的顺序进行组合,形成新数字。
其进一步技术方案为:获取新数字中的两位数字,形成表格ID号的步骤,具体是获取新数字中第一位数字以及最后一位数字,形成表格ID号。
其进一步技术方案为:将用户数据存储于所述表格ID号的表格内的步骤之后,还包括以下具体步骤:
发送查询或修改请求;
根据所述请求获取表格ID;
根据所述表格ID打开对应的表格,进行对应的查询或修改。
本发明还提供了一种分表系统,包括用户ID获取单元、表格ID获取单元以及存储单元;
所述用户ID获取单元,用于获取用户的ID号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼商业保理有限公司,未经天翼商业保理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710890427.7/2.html,转载请声明来源钻瓜专利网。