目录
数据库的水平分表
关于水平分表可以参考文章:https://blog.csdn.net/weixin_38192427/article/details/122441366
需求说明
创建两张表 t_order_1
和 t_order_2
,这两张表是订单表水平拆分后的表,通过 Sharding-JDBC
向订单表插入数据, 按照一定的分片规则,主键为偶数的进入 t_order_1
,主键为奇数进入 t_order_2
,通过 Sharding-JDBC
查询数据,根据 SQL
语句的内容从 t_order_1
或 t_order_2
查询数据
数据库表创建
创建订单库 order_db
,然后在 order_db
中创建 t_order_1、t_order_2
表,可以看到两张表的列是完全相同的,这就是水平分表
CREATE TABLE `t_order_1` (
`order_id` int(11) NOT NULL COMMENT '订单id',
`price` decimal(10,2) NOT NULL COMMENT '订单价格',
`user_id` int(11) NOT NULL COMMENT '下单用户id',
`status` varchar(50) CHARACTER SET utf8mb4 NOT NULL COMMENT '订单状态',
PRIMARY KEY (`order_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
CREATE TABLE `t_order_2` (
`order_id` int(11) NOT NULL COMMENT '订单id',
`price` decimal(10,2) NOT NULL COMMENT '订单价格',
`user_id` int(11) NOT NULL COMMENT '下单用户id',
`status` varchar(50) CHARACTER SET utf8mb4 NOT NULL COMMENT '订单状态',
PRIMARY KEY (`order_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
编写程序
引入 maven
依赖
主要依赖如下,其它依赖自行引入
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.1.1</version>