# 分库分表

通过将单个数据库拆分成多个、单个表拆分成多个的方法来提升数据库的性能,增加其可用性。
当单个库数据量大时,会造成查询 QPS 增高,可以通过拆库的方式分担连接压力。同时拆分数据库也可以提升可用性实现高可用。
当单个表数据量大时,数据库本身的手段无法优化性能,可以通过拆表的方式争取性能。

方案 解决问题
只分库 数据库读写 QPS 高,连接数不足
只分表 单表数据量过大,性能遇到瓶颈
分库分表 连接数不足,性能瓶颈

# 拆分方案

对于拆表拆库,可以按查询数量和连接数量计算求出大概数目。切分时有水平和垂直两种切分方式:
水平切分:按业务维度横线切分; 垂直切分:把不同字段切分到不同的表中。