分库分表

create by nohi 20210617

参考

  • https://blog.csdn.net/ztx114/article/details/88879260
  • https://www.yuque.com/books/share/6606b3b6-3365-4187-94c4-e51116894695/442fb5725c71e519d5aa984ec96f9108
- Sharding-JDBC
- Atlas
- MyCat
- DRDS

### 连接管理
### 模式处理
### 查询处理
### 数据处理
### 事务处理
### 安全控制

各种方案对比

分表分库解决方案(mycat,tidb,shardingjdbc)

参考:https://www.cnblogs.com/iceggboom/p/10134853.html

  • 1.sharding-jdbc(sharding-sphere)

    • 优点:

      1.可适用于任何基于java的ORM框架,如:JPA、Hibernate、Mybatis、Spring JDBC Template,或直接使用JDBC

      2.可基于任何第三方的数据库连接池,如:DBCP、C3P0、Durid等

      3.分片策略灵活,可支持等号、between、in等多维度分片,也可支持多分片键。

      4.SQL解析功能完善,支持聚合、分组、排序、limit、or等查询,并支持Binding Table以及笛卡尔积表查询。

      5.性能高,单库查询QPS为原生JDBC的99.8%,双库查询QPS比单库增加94%。

    • 缺点:

      1.理论上可支持任意实现JDBC规范的数据库。目前仅支持mysql

      2.维护会比较麻烦,需要逐个项目的修改配置。不能进行跨库连接,代码需要进行改造。

      3.在扩展数据库服务器时需要考虑一致性哈希问题,或者采用分片键局部取模方式,也难免要进行部分的数据迁移。

  • 2.mycat

    • 优点:

      1.支持Mysql集群,可以作为Proxy使用

      2.支持JDBC连接ORACLE、DB2、SQL Server,将其模拟为MySQL Server使用

      3.自动故障切换,高可用性

      4.支持读写分离,支持Mysql双主多从,以及一主多从的模式 ,支持全局表,数据自动分片到多个节点,用于高效表关联查询

      5.支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询

      6.多平台支持,部署和实施简单

    • 缺点:

      1.mycat不支持二维路由,仅支持单库多表或多库单表 由于自定义连接池,这样就会存在mycat自身维护一个连接池,MySQL也有一个连接池,任何一个连接池上限都会成为性能的瓶。

  • 3.tidb

    • 优点:

      1 .高度兼容 MySQL  大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过 TiDB 工具进行实时迁移。 2.水平弹性扩展  通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景。 3.分布式事务  TiDB 100% 支持标准的 ACID 事务。

      4.真正金融级高可用 相比于传统主从 (M-S) 复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复 (auto-failover),无需人工介入。 5 .一站式 HTAP 解决方案  TiDB 作为典型的 OLTP 行存数据库,同时兼具强大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP解决方案,一份存储同时处理OLTP & OLAP无需传统繁琐的 ETL 过程。 6.云原生 SQL 数据库 TiDB 是为云而设计的数据库,同 Kubernetes深度耦合,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。

    • 缺点: 该项目较新,还没有经过大量的生产环境检验,可能会存在一定的风险。

    • 不适用场景:

      (1) 单机 MySQL 能满足的场景也用不到 TiDB。

      (2) 数据条数少于 5000w 的场景下通常用不到 TiDB,TiDB 是为大规模的数据场景 设计的。

      (3)如果你的应用数据量小(所有数据千万级别行以下),且没有高可用、强一致性或 者多数据中心复制等要求,那么就不适合使用 TiDB

mycat配置

参考:https://www.cnblogs.com/fxwl/p/7990906.html

  • 分表目前不支持Join
上次更新: 12/15/2022, 10:01:37 AM
贡献者: NOHI