解决问题
并发问题和数据量过大问题
原则
先考虑分表再考虑分库,先考虑垂直,在考虑水平
分表
当单个表的数据量达到瓶颈后考虑分表
垂直分表
区分表中的热字段(使用较多的)和冷字段,拆分成两个表,两表建立主外键关系,可以实现联表查询
水平分表
根据时间轴或者ID编号或者类型等字段,将数据拆分到两个表结构一样的表存储,可以根据查询条件确定查询哪个表
分库
当数据库中所有的表都没有达到瓶颈制约,但是总体数据达到了数据库的瓶颈,那么考虑分库。
垂直分库
将部分表(考虑业务)移动到新建的数据库中,两个库表结构不一样。
水平分库
根据时间轴或者ID编号或者类型等字段,将数据拆分到两个表结构一样的数据库存储。
联表查询和联库查询问题解决
比如分页,可以通过手写代码查询条件判断,或者mybatis封装,或者采用其他jdbc技术实现。