目录
一般来说,一个业务会经历一下几个阶段
单库
刚开始流量较小,读写请求都落到同一个库无压力。
多库
随着业务发展,单库QPS逐渐变高,甚至出现读瓶颈。这时候可以将数据库读写流量分发到多个节点。
分库分表
基于路由策略(比如对主键求hash),将读写请求落到指定库中。业务可以通过集成比较成熟的中间件降低复杂度:如ShardJdbc(推荐),Mycat等
但是这并不是一颗完美的银弹,首先需要考虑如何设计分库,避免将热点数据落到同一个库。另外DML逻辑变得复杂,比如排序,分布式事务。