数据库扩容配置设计方案:
CREATE TABLE `business_unit` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '唯一主键', `name` varchar(100) NOT NULL COMMENT '业务标志', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 CREATE TABLE `share_group` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `business_id` bigint(20) NOT NULL COMMENT '业务线id', `start_id` bigint(20) NOT NULL COMMENT '开始id', `end_id` bigint(20) NOT NULL COMMENT '结束id', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 CREATE TABLE `share` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '分片主键id', `share_group_id` bigint(20) NOT NULL COMMENT '分片组id', `ip` varchar(100) NOT NULL COMMENT '数据库ip', `port` varchar(100) NOT NULL COMMENT '数据库端口号', `db_name` varchar(100) NOT NULL COMMENT '数据库名字', `hash` tinyint(4) NOT NULL COMMENT '取模值', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 CREATE TABLE `share_table` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '表主键id', `share_id` bigint(20) NOT NULL COMMENT '分片id', `start_id` bigint(20) NOT NULL COMMENT '业务主键开始id', `end_id` bigint(20) NOT NULL COMMENT '业务主键结束id', `table_name` varchar(100) NOT NULL COMMENT '表的名字', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8
init数据:
/*Data for the table `business_unit` */ insert into `business_unit`(`id`,`name`) values (1,'user'),(2,'order'),(3,'product'); /*Data for the table `share` */ insert into `share`(`id`,`share_group_id`,`ip`,`port`,`db_name`,`hash`) values (1,1,'127.0.0.1','3309','user_db_1',0),(2,1,'127.0.0.2','3309','user_db_2',1),(3,1,'127.0.0.3','3319','user_db_3',2),(4,1,'127.0.0.4','3313','user_db_4',3),(5,2,'127.0.0.1','3309','user_db_5',0),(6,2,'127.0.0.1','3309','user_db_6',1),(7,3,'127.0.0.1','3309','user_db_7',0),(8,3,'127.0.0.1','3309','user_db_8',1),(9,3,'127.0.0.1','3309','user_db_9',2); /*Data for the table `share_group` */ insert into `share_group`(`id`,`business_id`,`start_id`,`end_id`) values (1,1,1,500000),(2,1,500001,1000000),(3,1,1000001,1500000),(4,2,1,1000000),(5,2,1000001,2000000),(6,3,1,100000),(7,3,100001,500000); /*Data for the table `share_table` */ insert into `share_table`(`id`,`share_id`,`start_id`,`end_id`,`table_name`) values (1,1,1,200000,'t_user_1'),(2,1,200001,400000,'t_user_2'),(3,1,400001,500000,'t_user_3'),(4,2,1,500000,'t_user_4'),(5,3,1,300000,'t_user_5'),(6,3,300001,500000,'t_user_6'),(7,4,1,500000,'t_user_7'),(8,5,500001,700000,'t_user_8'),(9,5,700001,1000000,'t_user_9'),(10,6,500001,1000000,'t_user_10'),(11,7,1000001,1500000,'t_user_11'),(12,8,1000001,1500000,'t_user_12'),(13,9,1000001,1500000,'t_user_13');
以上四张表,是对扩容的配置:
SELECT b.name, g.start_id, g.end_id, s.hash, s.db_name, s.ip, s.port, t.start_id, t.end_id, t.table_name FROM business_unit b, share_group g, `share`s, share_table t WHERE b.id = g.business_id AND s.share_group_id = g.id AND t.share_id = s.id;
输出为:
相关推荐
SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表【全网最新】.doc
使用sharding-jdbc快速实现自动读写分离-demo源码!
使用mysql5.7+sharding-proxy实现分表,策略为每半年时间分一次表
一致性Hash算法,易于扩容;添加了 单元测试,使用Spring提供的RestTemplate调用RestFul风格的API接口;整合了 quartz 定时任务框架 ,并进行了封装,只需在构建完定时任务Job类后,在 application-quartz....
spring4.0.2+mybatis3.2.4+sharding-jdbc1.4.2实现分库分表、主从及事物支持
Sharding-JDBC实现读写分离demo
SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换
spring+mybatis+sharding-jdbc 1.3.1实现分库分表案例(可直接运行)
初步了解sharding jdbc实现数据分片的技术文档
MongoDB Sharding 机制分析及实现
集成sharding-jdbc实现分库分表.zip
Java+Springboot+mybatis+sharding jdbc 实现分库分表
SpringBoot(49) 整合sharding-jdbc实现自定义分库分表
Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现分库分表+读写分离
1、基于yml 配置方式 ,实现springBoot+sharding-jdbc+mybatis-plus 实现分库分表,读写分离,以及全局表,子表的配置。 2、实现mybatis-plus 整合到springboot 详细使用请看 测试用例
1. ruoyi框架基础集成了sharding5.0.0实现分表功能; 2. 采用动态数据源的方式,需要分表的连接采用单独的数据库连接; 3. 下载代码后,创建对应的数据库表,进行配置即可启动运行,测试功能; 4. 可以参考其中的...
Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现读写分离
spring-sharding-mybatisspring-sharding-mybatisspring-sharding-mybatis
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库...
shardingJdbc