mysql之分库分表(Sharding-JDBC)
-
何时分库分表
阿里规约中指出:单表行数超过500万行或者表容量超过2GB,才会推荐分库分表.
说明:如果三年内数据增长达不到这个规模,就不推荐分库分表
-
如何分库分表
- 垂直切分:基于业务,将一个数据库中的表根据业务拆分到多个数据库,将一个表中的字段切分成多个表
- 水平切分:基于数据,将一个表的数据拆分到多个表中,每个表的结构一样
-
分库分表带来的问题
-
跨库的关联查询
-
分布式事务
-
字段冗余
-
数据同步
-
分页查询,范围查询
-
全局id同步
- redis原子递增incr
- uuid 无序
- 雪花算法
- oracle:sequence
-
多数据源选择
-
自定义注解+AOP(AbstractRoutingDataSource)
-
Sharding-JDBC框架
-
配置
-
-