一、读写分离且分库分表
实际项目中,可能既要读写分离、又要分库分表,该种场景的实现方式有2中:
1、使用sharding-jdbc
2、使用mycat
简单来说,2种方式的区别是:
1)mycat是一个中间件,使用mycat时不需要改代码;
2)sharding-jdbc是一个jar包,使用sharding-jdbc时需要修改代码
二、分库分表
2.1 常见的拆分方式
- 根据指定字段值取模:如id%3=0、1、2的分别分在0号、1号、2号库/表
- 根据指定字段的数据范围:如id取值在0-500万、500万-1000万、1000万-2000万的分别分在不同的库/表
- 根据自然天、自然月拆分
- 根据字符串字串拆分
- 根据枚举拆分:枚举值为0、1、2的分别分在0号、1号、2号库/表
- 根据hash值拆分
…等等