分享

大数据分库、分表设计(mysql)

 WindySky 2017-11-23

1.应用场景:

                     使用mysql数据库做查询,当数据量超过200w时,查询数度受到限制,此时为了避开这一瓶颈,我们采取分库分表的数据库设计思想,将数据按照一定规律保存至数据库,常用的方式如下:

                    1.1使用时间作为依据分库/分表

                     例如,我们可以将数据按照月份保存在表中,例如:translate_2015_01,translate_2015_02.......以此达到分表、分库的目的;

                    1.2 使用数字作为分库,分表标准(取余)

                    我们经常会定义某个字段为自增长或者某个随机数,或者某个特定编码,利用这个编码,我们将其存放到不同的表中,例如,我们想要定义30张表存我们获得的数据,  第一个值为1,我们用1%30=1,由此可知该数据放在第一张表,又例如500%30=20,该数据放入第20张表。

                    1.3使用md5区分(上传文件等)

                    在上传文件过程中,将文件名的md5值取前3位作为上传文件保存的文件夹名称,这样便将上传的文件保存在了3^3=27个文件夹中,方便下次寻找到该文件;

2.使用分表,分库不利方面:

                   不利于做数据的统计操作,需要跨表跨库;增加设计的复杂度;


参考文档链接:

Ibatis和Hibernate 数据库分表(动态表名映射)的实现方法:http://www./weishuangshuang/archive/2011/03/26/347080.html

分库分表的解决方案:http://fengbin2005./blog/1165038

数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器:http://zhengdl126./blog/419850

Spring + iBatis 的多库横向切分简易解决思路:http://www./topic/781317

SQL SERVER分区表方案 :http://terryli.blog.51cto.com/704315/163315


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多