当前位置:网站首页>ShardingSphere's unsharded table configuration combat (6)
ShardingSphere's unsharded table configuration combat (6)
2022-07-31 00:48:00 【Melting polar】
概述
场景
在实际工作中,Some tables need to participate in sharding operations,Some tables do not require sharding,那么这种场景下,sharding-jdbc该如何配置呢?
SpringBoot环境搭建
参考ShardingSphereThe level of sub-table actual combat(三)
application.properties配置
Configurations involving unallocated tables are as follows,只需要指定default-data-source-name即可.
# 默认数据库,Unsharded tables are all here
spring.shardingsphere.datasource.mx.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.mx.driver-class-name=com.mysql.cj.jdbc.Driver
# course_dbThe database does not need to be created separately,It can also be the same as other sharded databases,比如可以是edu_db_1
spring.shardingsphere.datasource.mx.url=jdbc:mysql://localhost:3306/course_db?serverTimezone=GMT%2B8
spring.shardingsphere.datasource.mx.username=root
spring.shardingsphere.datasource.mx.password=123456
# 默认数据源,未分片的表默认执行库
spring.shardingsphere.sharding.default-data-source-name=mx
The full configuration is as follows
# 配置分片策略
# 配置数据源
spring.shardingsphere.datasource.names=m0,m1,m2,mx
# 默认数据库,Unsharded tables are all here
spring.shardingsphere.datasource.mx.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.mx.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.mx.url=jdbc:mysql://localhost:3306/course_db?serverTimezone=GMT%2B8
spring.shardingsphere.datasource.mx.username=root
spring.shardingsphere.datasource.mx.password=123456
spring.shardingsphere.datasource.m1.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.m1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.m1.url=jdbc:mysql://localhost:3306/edu_db_1?serverTimezone=GMT%2B8
spring.shardingsphere.datasource.m1.username=root
spring.shardingsphere.datasource.m1.password=123456
spring.shardingsphere.datasource.m2.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.m2.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.m2.url=jdbc:mysql://localhost:3306/edu_db_2?serverTimezone=GMT%2B8
spring.shardingsphere.datasource.m2.username=root
spring.shardingsphere.datasource.m2.password=123456
spring.shardingsphere.datasource.m0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.m0.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.m0.url=jdbc:mysql://localhost:3306/user_db?serverTimezone=GMT%2B8
spring.shardingsphere.datasource.m0.username=root
spring.shardingsphere.datasource.m0.password=123456
# 默认数据源,未分片的表默认执行库
spring.shardingsphere.sharding.default-data-source-name=mx
# 指定course表分布情况,配置表在哪个数据库中,表名称都是什么
spring.shardingsphere.sharding.tables.course.actual-data-nodes=m$->{1..2}.course_$->{1..2}
# 指定course主键cid生成策略SNOWFLAKE
spring.shardingsphere.sharding.tables.course.key-generator.column=cid
spring.shardingsphere.sharding.tables.course.key-generator.type=SNOWFLAKE
# 指定表分片策略, cid是偶数添加到course_1表中,cid是奇数添加到course_2
spring.shardingsphere.sharding.tables.course.table-strategy.inline.sharding-column=cid
spring.shardingsphere.sharding.tables.course.table-strategy.inline.algorithm-expression=course_$->{cid % 2 + 1}
# in the specified librarycourse表的分片策略
spring.shardingsphere.sharding.tables.course.database-strategy.inline.sharding-column=user_id
spring.shardingsphere.sharding.tables.course.database-strategy.inline.algorithm-expression=m$->{user_id % 2 + 1}
# 指定t_user表分布情况,配置表在哪个数据库中,表名称都是什么
spring.shardingsphere.sharding.tables.t_user.actual-data-nodes=m0.t_user
# 指定t_user主键user_id生成策略SNOWFLAKE
spring.shardingsphere.sharding.tables.t_user.key-generator.column=user_id
spring.shardingsphere.sharding.tables.t_user.key-generator.type=SNOWFLAKE
# 指定表分片策略
spring.shardingsphere.sharding.tables.t_user.table-strategy.inline.sharding-column=user_id
spring.shardingsphere.sharding.tables.t_user.table-strategy.inline.algorithm-expression=t_user
# 打开sql输出日志
spring.shardingsphere.props.sql.show=true
# 解决一个Course实体类不能对应两张表的问题
spring.main.allow-bean-definition-overriding=true
表结构

CREATE TABLE `t_study` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`course_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
测试代码
package com.study.shardingjdbcdemo.entity;
import lombok.Data;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@Table(name = "t_study")
public class Study {
@Id
private Long id;
private String name;
private String courseName;
}
package com.study.shardingjdbcdemo.mapper;
import com.study.shardingjdbcdemo.entity.Study;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;
@Repository
public interface StudyMapper extends Mapper<Study> {
}
@Test
public void defaultDb() {
Study study = new Study();
study.setName("xm");
study.setCourseName("mysql");
studyMapper.insert(study);
}
参考
边栏推荐
猜你喜欢

Shell programming of conditional statements

消息队列存储消息数据的MySQL表设计

The difference between h264 and h265 decoding
![[In-depth and easy-to-follow FPGA learning 15---------- Timing analysis basics]](/img/a9/4c7a703a36a244394b586bfb42ab6b.png)
[In-depth and easy-to-follow FPGA learning 15---------- Timing analysis basics]

Summary of MySQL database interview questions (2022 latest version)

mysql主从复制及读写分离脚本-亲测可用

pytorch bilinear interpolation
![Xss target drone training [success when pop-up window is realized]](/img/c1/61280bddc9a42a3827735dc31c86e5.png)
Xss target drone training [success when pop-up window is realized]

【ABAP】MFBF过账到质量检验库存类型Demo

【深入浅出玩转FPGA学习13-----------测试用例设计1】
随机推荐
[Yugong Series] July 2022 Go Teaching Course 016-Logical Operators and Other Operators of Operators
MySQL的grant语句
[In-depth and easy-to-follow FPGA learning 15---------- Timing analysis basics]
【ABAP】MFBF过账到质量检验库存类型Demo
The difference between h264 and h265 decoding
SereTOD2022 Track2代码剖析-面向半监督和强化学习的任务型对话系统挑战赛
响应式布局与px/em/rem的比对
pytorch bilinear interpolation
Go study notes (84) - Go project directory structure
C语言力扣第48题之旋转图像。辅助数组
typescript9-常用基础类型
MySQL中substring与substr区别
MySQL database (basic)
xss靶机训练【实现弹窗即成功】
MySQL数据库(基础)
MySQL数据库进阶篇
DOM系列之scroll系列
Go 学习笔记(84)— Go 项目目录结构
ELK deployment script---pro test available
typescript17-函数可选参数