1.为什么要使用分库分表:
分表前提:当单表数据量太大,会极大的影响sql的执行性能,这时sql会跑的很慢。当单表到达几百万的时候,性能就会有所下降。
分库前提:单库而言,最大的并发可能就2000左右,但是一个单库来说最好的并发保持在1000左右,当单数据库增大或者并发增加的时候,可以将一个库的数据拆分到多个库中。
2.什么时候进行分库分表:
单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表
3.数据库如何实现分库分表:
两种方案:垂直拆分和水平拆分
分库:
数据库垂直拆分 指的是按照业务对数据库中的表进行分组,同组的放到一个新的数据库中。需要从实际业务出发将大业务分割成小业务。比如商城的整个业务组中的用户相关表,订单表,物流表分别各自分类形成 用户系统数据库,订单系统数据库,物流系统数据库,如下图:
垂直拆分库的优点:(a)业务清晰,职责单一 (b)