MySQL分库分表无线扩容后的瓶颈及解决方案

随着业务增长,数据库成为性能瓶颈,分库分表成为解决之道。然而,分库分表带来连接数过多、事务一致性、跨库查询、排序计算等问题。本文探讨这些问题及其解决方案,并推荐《MySQL实战34讲》课程,帮助提升数据库核心能力,掌握架构师级MySQL设计与实践。
摘要由CSDN通过智能技术生成

我们知道大多数公司都是从单体应用开始的,即便现在抗住双十一流量洪峰的淘宝,它最早用的也是:

LAMP(Linux+Apache+MySQL+PHP)。

对于任何一个刚起步的项目来说,选择简单快速的方式来实现无可厚非。

一旦架构开始变得复杂往往是因为业务的体量越来越大,用户量以及流量开始增加,服务器的性能就会受到挑战,架构演进就成为了我们不得不的选择。

随着我们手里的数据越来越多,SQL 操作越来越慢,数据库就会成为瓶颈。这个时候我想你一定会想到分库分表,从而突破网络IO、硬件资源、连接数的限制,然后胸有成竹地拍拍胸脯说:“只要我数据库能无限扩容不就万事大吉了!”

先别太兴奋,你需要想一想,分库分表可能带来的棘手问题,比如:

  • 数据库连接过多,如果每个RPC都要连接所有的库,扩容则会导致连接数增加,需要考虑单元化;

  • 事务一致性问题,解决方案包括2PC、3PC、TCC、消息事务、最大努力通知等;

  • 跨库关联查询问题,我们可以考虑的方案包括全局表、字段冗余、系统层组装、ER表;

  • 翻页、排序、函数计算问题,需要先在不同的分片节点中将数据进行排序并返回,然后将不同分片返回的结果集进行汇总和再次排序,最终返回给用户;

  • 全局主键避

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值