基于 ShardingSphere5.0.0-alpha 实现 mysql 数据分片

声明

  • 本文会基于 Springboot + mybatis + shardingsphere + mysql5.6 + druid 进行实战讲解
  • 本文的实战内容为分表、以及数据分片, 不涉及分库, 读写分离之类的
  • 本文不会介绍 shardingsphere 的历史、概念以及分库分表的相关理论
  • 本文采用的 shardingsphere 版本是 5.0.0-alpha, 具体见 pom 文件
  • 文中贴出的代码片段难免会出现错误, 请以 上传的案例源码 为准
  • 本文涉及的源码请参考 码云地址
  • 如果看 官方文档 时, 请选对版本 !!!

正文

实现目标

我们有一张逻辑用户表 user_info, 我们把它水平拆分成 user_info0user_info1 两张物理表
当我们往用户表插数据时, 数据会按照一定的规则(根据id取模), 写入到其中一张 user_info 表中.

准备工作

1. 数据库表
create database miaosha;

DROP TABLE IF EXISTS `user_info0`;
CREATE TABLE `user_info0` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_label` varchar(32) COLLATE utf8_bin DEFAULT NULL,
  `username` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `email` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `phone` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `password` varchar(128) COLLATE utf8_bin NOT NULL,
  `active` tinyint(4) NOT NULL DEFAULT '1',
   PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


DROP TABLE IF EXISTS `user_info1`;
CREATE TABLE `user_info1` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_label` varchar(32) COLLATE utf8_bin DEFAULT NULL,
  `username` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `email` varchar(64) COLLATE utf8_bin DEFAULT 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值