垂直拆分后,遇到瓶颈,数据水平拆分
与垂直拆分对应的还有数据水平拆分,数据水平拆分就是把同一个表的数据拆分到两个数据库中,产生数据水平拆分的原因是某个业务的数据表的数据量或者更新量达到了单个数据库的瓶颈,这个时候就可以把表拆到两个或者多个数据库中。
数据水平拆分与读写分离的区别是,读写分离解决的是读压力大的问题,对于数据量大或者更新量大的情况并不起作用。
数据水平拆分与数据垂直拆分的区别是,垂直拆分是把不同的表拆分到不同的数据库,而水平拆分是把同一个表拆分到不同的数据库中。
我们可以进一步把用户表拆分到两个数据库中,它们拥有结构一模一样的用户表,而且每个库中的用户表都只涵盖了一部分的用户,两个数据库的用户和在一起就相当于没有拆分之前的用户表
水平拆分带来的影响
1. sql路由问题,需要根据一个条件来决定当前请求发到那个数据库中
2. 主键的处理,不能采用自增id,需要全局id
3. 由于同一个业务的数据被拆分到不同的数据库,因此涉及到一些查询需要跨两个数据库获
取,如果数据量太大并且需要分页,就比较难处理了