[发明专利]一种基于Hash算法支持千万用户数据分表方法在审
申请号: | 201310689118.5 | 申请日: | 2013-12-17 |
公开(公告)号: | CN103631959A | 公开(公告)日: | 2014-03-12 |
发明(设计)人: | 秦谦 | 申请(专利权)人: | 江苏名通信息科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 董建林 |
地址: | 212000 江苏省镇江市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 hash 算法 支持 千万 用户 数据 方法 | ||
技术领域
本发明涉及计算机数据库分表技术,具体涉及一种基于Hash算法支持千万用户数据分表方法。
背景技术
网站用户越来越大。对用户的相关的数据存贮,和用户数据读取的优化至关重要。这关系到网站对用户体验度的高低,并且一个网站最重要的就是服务于用户。如果用户感觉注册登录等相关操作慢体验不好,会严重影响网站的使用。当用户数据达到几百万,上千万的时候mysql单表查询一次的时间会倍增。如果有复杂查询的话,可能会卡死在那。
Mysql集群的拓展性高,不用改变sql语句,容易实施,但单表的数据量大,单条语句执行耗时长,服务器成本太高。
发明内容
本发明克服了现有技术的不足,提供一种基于Hash算法支持千万用户数据分表方法。
为解决上述技术问题,本发明采用的技术方案为:
一种基于Hash算法支持千万用户数据分表方法,包括以下步骤:
步骤S01,对用户名分配一个ID值,通过Hash函数返回相应字符串,获得一个Key值;
步骤S02,用户数据通过所述Key值,创建目标表名称;
步骤S03,数据库存储表中生成以所述目标表名称命名的用户表;
步骤S04,输入用户名,通过Hash函数计算出数据存储表的表名,然后访问相应的表。
通过Hash函数返回的字符串为二进制或者十六进制。
较优地,字符串为4位字符串。
与现有技术相比,本发明的有益效果有:多台服务器内建用户算法,将用户名按照一定的唯一算法将用户存贮到不同的表中,提高单表的性能,将一些常用字段汇总方便用户操作,提高操作效率,增加可用度。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
一种基于Hash算法支持千万用户数据分表方法,包括以下步骤:
步骤S01,对用户名分配一个ID值,通过Hash函数返回相应字符串,获得一个Key值;
步骤S02,用户数据通过所述Key值,创建目标表名称;
步骤S03,数据库存储表中生成以所述目标表名称命名的用户表;
步骤S04,输入用户名,通过Hash函数计算出数据存储表的表名,然后访问相应的表。
通过Hash函数返回的字符串为二进制或者十六进制。
较优地,字符串为4位字符串。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏名通信息科技有限公司,未经江苏名通信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310689118.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于控制电器的系统和方法
- 下一篇:一种访问网页的方法、装置及浏览器