mysql分库分表策略

一、分表

1、垂直拆分:根据表的字段数量

2、水平拆分规则:根据特定字段取模,范围,hash

 

二、分库

1、垂直拆分:根据业务拆分

订单数据过多时可给订单单独创建数据库

2、水平拆分: 垂直拆分后的数据库根据规则进行水平拆分

 

如:订单数据库表的设计

首先思考:需要知道数据表的相关查询有哪些,清楚数据库查询时冷和热的查询,好去设计。

不知道哪些查询,拆分时可能规则不合理,会造成拆分后性能越来越低

 

查询规则:

1、根据用户查询订单

2、根据商家查询订单

拆分规则:

1、数据尽量平均拆分

2、事务边界---sql的查询数据量,尽量避免极端查询(超过30%,50%就属于比较多的查询)

如果一条sql可以根据规则进行准确定位,查询效果好。如果根据规则不能完全定位,

可能需要筛选一部分库,根据库,再根据规则筛选一部分表。筛选完表后还需要进行数据的

筛选过滤,过滤的量越多意味着查询的速率越慢 。牵扯到事务边界,尽量避免极端查询。

 

不能避免需要全表扫描的数据,如做统计之类的查询,100%查询。

统计整个平台订单量,我们可以物化视图,创建统计表,定期更新统计表数据,也同样避免极端查询(数据量多的查询)

3、冷热的业务查询

 

三、多少数据量分表

5000w,索引的极限

 

理论500w或数据量5G可分表(分表后比较快)

实际1000w-2000w左右分表

不能超过5000w才分表,5000w是索引极限

 

时间根据ip和cpu实际判断分表数据量

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值