一个社交网站的数据库扩展路线通常如下图所示。
在初始阶段,所有的数据都放在一个数据库里。而随着规模越来越大,可以用数据分片来解决数据库扩展的瓶颈。
小规模(<500QPS或100TPS,读用户<100,写用户<10):在单库中通过读写分离提升并发读的性能;
中规格(<5000QPS或1000TPS, 读用户<5000,写用户<100):垂直分库,将不同的业务分布到不同的数据库;
大规模以上(10K+QPS,10K+TPS 读用户10K+,写用户1K+):数据分片,将数据表分到不同的数据库中。