7. 执行sql脚本创建sharding_0和sharding_1两个数据库 。两个数据库完全一样,包含如下数据表:
- company 企业表,根据id分库
- product 商品表,根据企业idcompany_id分库
- permission 权限表,广播表不分库
CREATE DATABASE sharding_0 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;CREATE DATABASE sharding_1 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;CREATE TABLE `company`(`id` bigint(20) NOT NULL COMMENT '主键id',`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;CREATE TABLE `permission`(`id` bigint(20) NOT NULL COMMENT '主键id',`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;CREATE TABLE `product`(`id` bigint(20) NOT NULL COMMENT '主键id',`company_id` bigint(20) NULL DEFAULT NULL COMMENT '公司id',`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
8. 启动代理数据库在bin目录下:# mac/linuxsh start.sh 3307# windowsstart.bat 3307
- 指定数据库端口 3307
9. 连接代理数据库代理数据库对于开发人员来说与普通数据库的操作无异,既可通过命令行,也可通过可视化工具来进行连接和操作 。
通过命令连接代理数据库
mysql -h127.0.0.1 -P3307 -uroot -p123456
通过可视化工具连接代理数据库文章插图
图片
10. 分库分表结果1)company在代理数据库company表上添加企业数据记录 。
文章插图
图片
偶数id的企业在sharding_0数据库,奇数id企业在sharding_1数据库 。
文章插图
图片
文章插图
图片
2)product在代理数据库product表上添加商品数据记录 。
company_id为偶数的商品在sharding_0数据库 , company_id为奇数的商品sharding_1数据库 。保证了一个企业的商品全部在一个库里面 。
文章插图
图片
文章插图
图片
3)permission在代理数据库permission表上添加权限数据记录 。
被代理的两个数据库的数据都一样 。
【Spring Cloud 微服务系列之 ShardingSphere-Proxy 数据库代理】
文章插图
图片
11. 总结ShardingSphere-Proxy是在数据库和应用程序之间起到了一个桥梁的作用 , 对于应用程序来说,它不需要感知ShardingSphere-Proxy的存在,依然可以使用原来的方式操作数据库 。也就是说 , ShardingSphere-Proxy对于应用程序来说是透明的,不需要额外的代码实现或者调整 。
文章插图
图片
Spring Cloud 微服务系列 完整的代码在仓库的sourcecode/spring-cloud-demo目录下 。
gitee(推荐):https://gitee.com/cunzAIzhe/xiaohuge-blog
Github:https://github.com/tigerleeli/xiaohuge-blog
推荐阅读
- 郭美美出狱后动态曝光!前往医院做整形,近照眼睛微凸染灰色头发
- 微信拍一拍怎么说话 微信拍一拍怎么说话加文字
- 微信群怎么使用拍一拍 微信群怎么使用拍一拍功能设置
- 怎样在微信里找回删除的聊天记录视频 怎样在微信里找回删除的聊天记录
- 安卓版微信拍一拍怎么设置 安卓系统微信拍一拍怎么设置
- ios微信拍一拍功能在哪里 ios微信拍一拍怎么开
- ios改微信号怎么改
- ios改微信号怎么改第二次 ios改微信号怎么改第二次实名认证
- ios微信拍一拍怎么弄 ios微信拍一拍在哪
- 微信拍一拍小尾巴生成 微信拍一拍小尾巴生成器下载