开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Mysql分表分库分析

简介:
+关注继续查看

    对于大型的互联网应用,数据库单表的数据量可能达到千万甚至上亿级别,同时面临这高并发的压力。Master-Slave结构只能对数据库的读能力进行扩展,写操作还是集中在Master中,Master并不能无限制的挂接Slave库,如果需要对数据库的吞吐能力进行进一步的扩展,可以考虑采用分库分表的策略。

    1.分表

       在分表之前,首先要选中合适的分表策略(以哪个字典为分表字段,需要将数据分为多少张表),使数据能够均衡的分布在多张表中,并且不影响正常的查询。在企业级应用中,往往使用org_id(组织主键)做为分表字段,在互联网应用中往往是userid。在确定分表策略后,当数据进行存储及查询时,需要确定到哪张表里去查找数据,

       数据存放的数据表 = 分表字段的内容 % 分表数量

  2.分库

        分表能够解决单表数据量过大带来的查询效率下降的问题,但是不能给数据库的并发访问带来质的提升,面对高并发的写访问,当Master无法承担高并发的写入请求时,不管如何扩展Slave服务器,都没有意义了。我们通过对数据库进行拆分,来提高数据库的写入能力,即所谓的分库。分库采用对关键字取模的方式,对数据库进行路由。

     数据存放的数据库=分库字段的内容%数据库的数量

 3.即分表又分库

        当数据库同时面临海量数据存储和高并发访问的时候,需要同时采取分表和分库策略。一般分表分库策略如下:

         中间变量 = 关键字%(数据库数量*单库数据表数量)

         库 = 取整(中间变量/单库数据表数量)

        表 = (中间变量%单库数据表数量)




     本文转自yzy121403725 51CTO博客,原文链接:http://blog.51cto.com/lookingdream/1909284,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[玩转MySQL之零]MySQL5.7三种安装 方式及详解
本文详细介绍MySQL5.7的三种安装方式(二进制,yum,源码编译)的特点、优劣。并以操作系统为CentOS 7为例,图解每一种安装方式的详细过程。 ​ 一、MySQL server三种安装方式对比 二、MySQL 版本选择 稳定版:选择开源社区版的稳定版(GA版本) 选择MySQL数据库GA版发布后6个月以上的GA版本 选择前后几个月没有大的BUG修复的版本,而不是大量BUG修复后的集中版本 最好向后较长时间没有更新发布的版本 如果和云平台混合使用,最好选择5.6,目前大部分云厂商提供的MySQL都是5.6版本。
2290 0
linux下使用yum安装mysql,以及启动、登录和远程访问
作者:無名 链接:http://orchome.com/238 来源:OrcHome 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1148 0
mysql安装、完全卸载(清除安装历史记录)、忘记密码、修改密码
mysql安装、完全卸载(清除安装历史记录)、忘记密码、修改密码 1、安装     下载解压版本,然后到解压文件夹下的bin目录,新建my.ini文件,放入: [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306.
2011 0
CentOS 7 - 安装MySQL 5.7
CentOS 7的默认yum仓库中并没有MySQL5.7,我们需要手动添加,好在MySQL官方提供了仓库的地址,所以我们能够比较简单地安装MySQL。
5622 0
windows 10 下 mysql的安装
win10下 mysql的安装 今天在win10下装Mysql,总结一下安装详细过程: 1、下载【先进入官网: https://www.mysql.com/】(按照如下截图一步一步执行即可)           2、安装 下载出来的会是一个压缩包,解压到你打算安装的目录下边(不像图形化界面安装那样还需要点击一系列【next】),但是离完全安装成功,现在才是刚刚开始。
1567 0
mac下安装mysql
mac下安装mysql 根据我的自身经验来看,windows、liunx、mac这三个平台来看,mac上安装到正常运行是最耗我时间的。因此纪录下来,下次遇到有地方可查。 1、mysql下载安装: https://dev.mysql.com/downloads/mysql/ 这里要注意的是,最好安装和你系统匹配的版本,不然后续可能会遇到一些奇怪的错误。
4281 0
如何在Ubuntu14.04中安装mysql
接触过MySQL的小伙伴们都知道,在Windows下安装MySQL是一件让人十分头大的事情,但是在Ubuntu等其他Linux系统中安装MySQL就简单很多了,具体的教程如下。
1402 0
Linux安装MySQL
一、检查系统是否安装其他版本的MYSQL数据 yum list installed | grep mysql yum -y remove mysql-libs.
2103 0
21114
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载