目录
什么是分库分表
设计高并发系统数据库层面的设计,有些系统可能光分库不分表,也可能是光分表不分库,视业务需求而定。
例如有一个小公司运营一个系统,注册用户20万,每天活跃用户1万,每天单表数据量1000,然后高峰期每秒钟并发请求最多就10个。后来由于公司业务发展迅猛,过了几个月注册用户数达到了2000万 每天活跃用户数100万 每天单表数据量10万条,高峰期每秒最大请求达到1000,然后连续融资了两轮,进账几个亿估值达到几亿美金。每天单表数据量10万条数据,一个月就300万条数据。高峰期请求现在是1000,线上部署几台机器,负载均衡搞一下,数据库撑1000QPS也还凑合。接下来几个月公司用户数达到1亿,继续融资几十亿人民币,估值达到了几十亿美金。此时每天活跃用户数上千万,每天单表新增数据多达50万,目前一个表总数据量已经达到了两三千万了,数据库磁盘容量不断消耗掉,高峰期并发达到的5000~8000。这种情况下为了提升系统的并发和性能一般就需要分库分表了,业务发展越好,用户就越多,数据
本文介绍了数据库分库分表的概念、中间件选择,如Cobar、TDDL、Atlas、Sharding-jdbc和Mycat,并详细讨论了分库分表的策略,包括水平拆分和垂直拆分。数据迁移方案包括停机迁移和双写迁移,以及如何处理分库分表后的id主键问题,提出了如snowflake算法等解决方案。
订阅专栏 解锁全文
2665

被折叠的 条评论
为什么被折叠?



