1.垂直拆分 就是将一张表的字段拆分为两个两个表字段之和,它们之间的关系 类似上下级的关系 类比于垂直拆分,可以将使用频率高字段放在一张表中,将使用频率低的放入另外一张表中,这样有助于提高并发性。
2.水平拆分 就是一张表的数据过多,需要将一张表的数据放到多个库中的多个表中。这样做的目的是提高存储容量。
3.分库 将一个数据库拆分分为多个库 提高并发性 单机数据库的并发访问在1s 1000左右 最多不能超过2000,超过以后就要考虑分库。
4.分表 第一种:将一张表划分多个多张表 提高存储容量。但不分字段出来,因为单表容量大了以后,会影响SQL的执行效率。
第二种:将一张表划分多个多张表 同时也要分一部分字段出来 有点像垂直拆分的意思
常用的分库分表中间件有:Sharing-jdbc 和Mycat 都是比较成熟的方案。使用的话请百度
具体可以参考这里:
https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/database-shard.md 写的不错 值得参考