SpringBoot使用Sharding-JDBC对PostgreSQL数据库分库分表
关于Sharding-JDBC
对于Sharding-JDBC的介绍这里就过多阐述,Sharding-JDBC是当当网自研的关系型数据库的水平扩展框架,现已捐献给Apache。具体了解可以看官方文档。
shardingsphere文档地址
集成sharding-jdbc
本文使用的sharding-jdbc版本为3.1.0
1、创建数据库:
模拟订单数据库,有两个数据库ds_0、ds_1,依据于user_id进行分库。每个库中,将t_order表依据order_id进行拆分为t_order_0,t_order_1两个表,依据order_id进行分表。
CREATE DATABASE IF NOT EXISTS `ds_0`;
USE `ds_0`;
CREATE TABLE IF NOT EXISTS `t_order_0` (
`order_id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`status` varchar(50) DEFAULT NULL,
PRIMARY KEY (`order_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `t_order_1` (
`order_id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`status` varchar(50) DEFAULT NULL,
PRIMARY KEY (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE DATABASE IF NOT EXISTS `ds_1`;
USE `ds_1`;
-- Dumping structure for table demo_ds_0.t_order_0
CREATE TABLE IF NOT EXISTS `t_order_0` (
`order_id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`status` varchar(50) DEFAULT NULL,
PRIMARY KEY (`order_id`)
) ENGINE=Inn