/horizontal-sharding

基于 JDBC / MyBatis 的水平分库分表实现

Primary LanguageJavaApache License 2.0Apache-2.0

horizontal-sharding

1 功能

提供原生 JDBC 或 MyBatis + Spring 下的水平分库分表实现,支持:

  • 分库分表下的 CRUD
  • 事务支持

2 分库依据

基于分片 modulo 的**,将用户 ID 对分片数 modulo size 取模,将用户映射到不同分片中,每个分片通过一张配置表决定存储于哪个分库中。

3 库表介绍

数据库名 类型
hor-shard-center **库
hor-shard-ds1 分库1
hor-shard-ds2 分库2

(1) center 库

  • user 业务表,用户信息

(2) shard 库

  • order_{modulo} 业务表,订单信息
  • order_{modulo} 业务表,订单详情信息

4 运行程序

初始化库表

运行 sql/initialize.sql 脚本,初始化库表。

启动程序