MYSQL分库分表常见问题

什么是分库

分库:是将一个数据库分成多个数据库,但是总表数不变,部署到不同机器,这样可以分担数据库的读写压力,提高系统的吞吐能力。

什么是分表

分表:就是一个表分成多个表,但是总体的库不变,这样可以减少单个表的数据量,提高查询性能。

分库+分表

分库+分表是指库和表都切分,数量都发生变化,这种情况说明数据量已经达到一定程度,无论进行哪种单独的切分都会产生性能瓶颈。 如下图所示原数据库DB中有张user表,将表切成4份然后平分到2个数据库上。

为什么要分库分表

可以解决海量数据运维管理

可以在海量数据里高效查询

可以解决高并发下性能瓶颈

提高系统的可伸缩性和可扩展性

什么时候需要分库分表

单实例性能到达瓶颈

单库容量超过2T

单表数据超过800W

年增量千万级

分片算法/工具

案例分享一

运营商登录服务:        手机号表按照省份分表(31个表),即便这样对于广东省仍然有9千万的数据量,然后再水平分片(18个分片),按照单表不超800w的原则进行划分。      整体分库+分表如下图:


 

案例分享二
 

分库分表后这些坑你踩过么

分布式事务、 广播sql 跨分片的join查询、 主键生成问题 、 扩容问题、  热点库表问题 、 数据严重倾斜 、 聚合、复杂性查询、报表等问题 、 多IDC数据同步问题等等

如何解决、躲避这些问题

总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值