mysql 数据库 如何分片_如何为MySQL分片

第一部分:

关系型数据库随时间的流逝慢慢的不能满足现在每秒大量的操作、很多打开的连接、大量的数据和非常高的写比率。为避免这种情况的出现,很多大型站点和SaaS的应用开始使用sharding技术和他们的关系型数据结合。

怎样对应用分片?下面列出的四点很简单:

1、分析表schema得出分片该如何设置

2、开启多个MySQL 实例

3、根据shard配置,导入导出数据

4、更新程序代码来支持shard配置

分析数据:

为了得到一个shard 配置,你需要做下面三步:

1、列出表名和表的大小。 大表时最需要进行分片的,因为很多SQL命令经常在表上执行。

2、列出外键(如果有的话)外键帮助我们了解表之间的关系,这样的表需要很明智的划分,否则你的表将失去一致性

3、分析涉及到的SQL语句  一些SQL语句在shard环境下是难以执行的。所以需要整理一份SQL语句来决定哪些表时不需要shard的。我们还能得出哪些表时访问频率很高,哪些不是。

表划分规则:

在实施shard的时候,需明白并不是所有的表都会被分片。因为sharding会限制SQL的书写(不允许在表之间进行join,表的唯一性,自增字段),你必须强制修改应用代码。通常情况下一些表被shard,另一些表被复制到其他shard上。

确定哪些表时需要被分片的;

对表进行shard的算法像下面描述的一样简单:

1、寻找最大的表,很多表结构中都有几张大表,其余并不是。

2、分析sql语句:

是否表之间使用了join查询&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值