主要内容介绍
- 什么是sharding-jdbc
- sharding-jdbc功能特性
- 核心概念介绍
- 实际案例介绍
1.什么是sharing-jdbc
定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。
- 适用于任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC。
- 支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP 等。
- 支持任意实现 JDBC 规范的数据库,目前支持 MySQL,Oracle,SQLServer,PostgreSQL 以及任何遵循 SQL92 标准的数据库
2.sharding-jdbc功能特性
sharding-jdbc主要有几个重要的特性
数据分片
- 分库分表
- 读写分离
- 分片策略定制化
- 分布式主键
分布式事务
- 标准化事务接口
- XA强一致事务
- 柔性事务
数据库治理
- 分布式治理
- 弹性伸缩
- 可视化链路追踪
- 数据加密
3.核心概念
-
逻辑表: 水平拆分的数据库(表)的相同逻辑和数据结构表的总称。例:用户数据根据主键尾数拆分为 10 张表,分别是
t_user_0
到t_user_9
,他们的逻辑表名为t_user
-
真实表:在分片的数据库中真实存在的物理表。即
t_user_0
到t_user_9
-
数据节点:数据分片的最小单元。由数据源名称和数据表组成,例:
ds_0.t_user_0
。 -
绑定表:指分片规则一致的主表和子表。例如:
t_user
表和t_user_extend
表,均按照user_id
分片,则此两张表互为绑定表关系。绑定表之间的多表关联查询不会出现笛卡尔积关联,关联查询效率将大大提升 -
广播表: 指所有的分片数据源中都存在的表,表结构和表中的数据在每个数据库中均完全一致。适用于数据量不大且需要与海量数据的表进行关联查询的场景,例如:字典表。
-
单表:指所有的分片数据源中只存在唯一一张的表。适用于数据量不大且不需要做任何分片操作的场景。
4.实际案例介绍
会结合实际业务来给出案例,更新中