shardingJdbc和Mycat都可以用来分库分表
MyCat | shardingJdbc | |
---|---|---|
本质 | 第三方应用,中间件代理层 | jar包 |
是否需要修改代码 | 否 | 是 |
可跨数据库 | 否 | 是 |
是否跨语言 | 是 | 否 |
性能 | 下架,因为多了一层 | 好 |
sharding-jdbc后续发展为Sharding-Sphere,包含sharding-jdbc、Sharding-Proxy、Sharding-Sidecar
Sharding-IDBC:被定位为轻量级Java框架,在JavaJDBC层提供的额外服务,以jar包形式使用。
Sharding-Proxy:被定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。
Sharding-Sidecar:被定位为Kubernetes的云原生数据库代理,以DaemonSet的形式代理所有对数据库的访问。
关于分表策略通常分为三种
1、取模
2、范围分表-通常是时间
3、城市-有明显业务特征的分表
时间范围策略通常用于冷热数据分离,例如美团限查近3个月的订单,量体比较大,而且历史数据使用相对较少
城市这种分表策略,类似于多租户的概念,业务处理场景一样,但是数据独立