MySQL 为什么要分库分表?什么情况下才需要?
单库瓶颈:① 容量:数据量巨大(单表千万~亿级、库几十 TB)存储/备份慢;② 并发:单库连接数/IO/CPU 打满,读写争抢;③ 单表过大:索引深度、扫描成本高。分库分表时机(先做其他优化再考虑):① 单表数据量过大且无明显缓解手段(通常建议提前规划,如预估单表 > 2000 万-5000 万行);② 写并发高、单库写成为瓶颈;③ 归档无法解决容量增长。方案:垂直拆分(库按业务模块拆、表按字段拆)→ 水平拆分(按分片键把数据分布到多表/多库)。成本:跨库查询、分布式事务、全局 ID、扩容复杂——能不分就不分。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。