依赖
| 依赖 | 版本 |
|---|---|
| spring-boot | 2.5.1 |
| spring-boot-starter-data-jpa | 2.5.1 |
| HikariCP | 4.0.3 |
| mysql-connector-java | 8.0.25 |
| sharding-jdbc-spring-boot-starter | 4.1.1 |
| lombok | 1.18.20 |
- 根据user_id的奇偶进行数据库选择
表的分片规则:
- 根据主键的奇偶进行选择
水平划分测试表
DROP TABLE IF EXISTS `course_1`;
CREATE TABLE `course_1` (
`id` bigint NOT NULL,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`user_id` int NULL DEFAULT NULL,
`status` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;垂直划分测试表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL,
`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`status` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;