springboot整合sharding-jdbc分库分表最全详解

本文详细介绍了如何在SpringBoot项目中整合Sharding-JDBC实现分库分表,包括数据表创建、项目搭建、依赖引入、配置讲解及自定义分片算法。通过标准分片策略,利用ShardingStrategy处理SQL语句中的分片操作,确保项目成功运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近公司一个新项目,需要进行分库分表,本人调研了mycat和sharding-jdbc后决定使用sharding-jdbc来进行分库分表,至于这两个的区别以及特点可以自行到官网查看,mycat更偏向于运维部署层面的分库分表,基于插件来动态代理,sharding-jdbc是基于jar包依赖的配置,调研后就是demo的编写。按照我下面的讲解保证能够搭建成功,并且对于一些可能出现的问题也会提醒注意。

1.这里使用的是项目中的文件存储系统服务的分库分表例子,数据库为file_center,将原来的file_info表进行分表为file_info_0和file_info_1两张表,对存储数据按照id进行分片算法来决定存入哪张表,具体见后面配置。这里file_info就是逻辑表名,file_info_0和file_info_1才是真实的数据表。建表语句如下。

CREATE DATABASE IF NOT EXISTS `file_center` DEFAULT CHARACTER SET = utf8;
Use `file_center`;


DROP TABLE IF EXISTS `file_info_0`;
CREATE TABLE `file_info_0`  (
  `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件md5',
  `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `is_img` tinyint(1) NOT NULL,
  `content_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `size` int(11) NOT NULL,
  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理路径',
  `url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `thumb_image_url` varchar(1024) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '缩略图路径',
  `create_time` datetime(0) NULL DEFAULT NULL,
  `update_time` datetime(0) NULL DEFAULT NULL,
  `tenant_id` varchar(32) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  KEY `idx_create_time` (`create_time`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

DROP TABLE IF EXISTS `file_info_1`;
CREATE TABLE `file_info_1`  (
  `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件md5',
  `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `is_img` tinyint(1) NOT NULL,
  `content_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `size` int(11) NOT NULL,
  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理路径',
  `url` varch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值