加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL分库分表,写得太好了!

发布时间:2018-09-22 00:05:07 所属栏目:编程 来源:java面试笔试
导读:【新品产上线啦】51CTO播客,随时随地,碎片化进修 Mysql分库分表方案 1.为什么要分表: 当一张表的数据到达几万万时,你查询一次所花的时刻会变多,假若有连系查询的话,我想有也许会死在那儿了。分表的目标就在于此,减小数据库的承担,收缩查询时刻。 my

在现实的应用中,绝大部门环境都是读宏大于写。Mysql提供了读写疏散的机制,全部的写操纵都必需对应到Master,读操纵可以在 Master和Slave呆板长举办,Slave与Master的布局完全一样,一个Master可以有多个Slave,乃至Slave下还可以挂 Slave,通过此方法可以有用的进步DB集群的 QPS.

全部的写操纵都是先在Master上操纵,然后同步更新到Slave上,以是从Master同步到Slave呆板有必然的耽误,当体系很忙碌的时辰,耽误题目会越发严峻,Slave呆板数目的增进也会使这个题目越发严峻。

另外,可以看出Master是集群的瓶颈,当写操纵过多,会严峻影响到Master的不变性,假如Master挂掉,整个集群都将不能正常事变。

以是

1. 当读压力很大的时辰,可以思量添加Slave呆板的分式办理,可是当Slave呆板到达必然的数目就得思量分库了。

2. 当写压力很大的时辰,就必需得举办分库操纵。

MySQL行使为什么要分库分表

可以用说用到MySQL的处所,只要数据量一大, 顿时就会碰着一个题目,要分库分表。

这里引用一个题目为什么要分库分表呢?MySQL处理赏罚不了大的表吗?

着实是可以处理赏罚的大表的。我所经验的项目中单表物理上文件巨细在80G多,单表记录数在5亿以上,并且这个表 属于一个很是核用的表:伴侣副黄?。

但这种方法可以说不是一个最佳方法。由于面对文件体系如Ext3文件体系对大于大文件处理赏罚上也有很多题目。

这个层面可以用xfs文件体系举办替代。但MySQL单表太大后有一个题目是欠好办理: 表布局调解相干的操纵根基不在也许。以是大项在行使中城市面监着分库分表的应用。

从Innodb自己来讲数据文件的Btree上只有两个锁, 叶子节点锁和子节点锁,可以想而知道,当产生页拆分或是添加新叶时城市造成内外不能写入数据。

以是分库分表还就是一个较量好的选择了。

那么分库分表几多吻合呢?

经测试在单表1000万笔记录一下,写入读取机能是较量好的. 这样在留点buffer,那么单表满是数据字型的保持在800万笔记录以下, 有字符型的单表保持在500万以下。

假如按 100库100表来筹划,如用户营业:

500万*100*100 = 50000000万 = 5000亿记录。

内心有一个数了,按营业做筹划照旧较量轻易的。

【编辑保举】

  1. 带你相识MySQL数据库小能力
  2. 史上最全的MySQL高机能优化拭魅战总结!
  3. 数据库为什么会分为“行式存储”和“列式存储”呢?
  4. MySQL 8.0新特征之统计直方图
  5. 顺丰高级工程师误删数据库,被解雇!
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读