博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mycat+SpringBoot完成分库分表
阅读量:4182 次
发布时间:2019-05-26

本文共 2539 字,大约阅读时间需要 8 分钟。

mycat下载

conf下的schema.xml的配置

:表示的是在mycat中的逻辑库配置,逻辑库名称为:TESTDB

:表示在mycat中的逻辑表配置,逻辑表名称为:user,映射到两个数据库节点dataNode中,切分规则为:rule1(在rule.xml配置)

:表示数据库节点,这个节点不一定是单节点,可以配置成读写分离.

:真实的数据库的地址配置

:用户心跳检测

:写库的配置

select user()

分配规则

  • 分片枚举

  • 固定分片 hash 算法

  • 范围约定

  • 取模 mod-long

  • 按日期(天)分片

  • 取模范围约束

  • 截取数字做 hash 求模范围约束

  • 应用指定

  • 截取数字 hash 解析

  • 一致性 hash

  • 按单月小时拆分

  • 范围求模分片

  • 日期范围 hash 分片

  • 冷热数据分片

  • 自然月分片

conf/rule.xml 配置

id
mod-long
id
mod-long2
2
1

在两个物理数据库的创建表

CREATE TABLE user(id int PRIMARY KEY ,name VARCHAR(10))

springbootd的配置文件 这里连接的是mycat

#配置数据源spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver#这里配置的是Mycat中server.xml中配置账号密码,不是数据库的密码。spring.datasource.druid.username=rootspring.datasource.druid.password=123456#mycat的逻辑库 端口也是mycat的spring.datasource.druid.url=jdbc:mysql://172.18.9.166:8066/TESTDB

批量插入数据

@Test    void addList() {
List
users = new ArrayList<>(); for (int i = 3; i < 100; i++) {
User user = new User(); //必须设置id,即使物理数据库的id设置为自增长都不行 user.setId(i); user.setName("xiaobu" + i); users.add(user); } int count = userMapper.insertList(users); System.out.println("count = " + count); }

查询

package com.xiaobu.controller;import com.xiaobu.mapper.UserMapper;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2019/12/6 10:33 * @description */@RestController@RequestMapping("user")public class UserController {
@Resource private UserMapper userMapper; @GetMapping("insert") @ResponseBody public String insert(){
return null; } @GetMapping("selectAll") @ResponseBody public String selectAll(){
return userMapper.selectAll().toString(); }}

可以看到数据插入成功了

1576639640(1).jpg

mycat 连接属性

微信截图_20191218112939.png

数据查询

QQ截图20191218113838.png

两个物理表数据存储情况

springboot_demo.user

QQ截图20191218114756.png

ssm.user

QQ截图20191218114805.png

参考:

转载地址:http://swgai.baihongyu.com/

你可能感兴趣的文章
阿里二面:什么是mmap?
查看>>
收到字节 Offer,月薪 45k,爽!
查看>>
计算机科学界至今未解决的四大难题
查看>>
程序员离职后躲老家山洞 2 年,敲出 45 万行代码...
查看>>
7 面 Google,还是失败了....
查看>>
技术大佬们都是怎么学习的?
查看>>
45 年编程经验告诉我的技术真相
查看>>
Python除了不能帮你生孩子,什么都能做!
查看>>
考研失败了,该何去何从?
查看>>
聊一聊我在 B 站上自学编程的经历吧
查看>>
酸了!会这个技能的 AI 工程师年薪至少35W起!
查看>>
靠,竟然有如此沙雕的代码注释!
查看>>
大一新生开发的小工具火了,网友:我好菜
查看>>
为什么大学生学点Python容易拿高薪?
查看>>
小米官方良心出品,永久免费无广告!!
查看>>
新版 Win 10 来了。网友:要被丑哭了……
查看>>
无意中发现了一位清华大佬的代码模版
查看>>
2021 年第一款神器,非它莫属!!
查看>>
太绝了!一篇文章说清了Python学习的全部路线!
查看>>
面试前,千万要注意这件事!!!
查看>>