將字段拆分出多個表
將數(shù)據(jù)拆分多個表
<!-- 分庫分表插件 -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
</dependency>
在執(zhí)行sql時,按照配置的策略,動態(tài)改變表名查找對應的數(shù)據(jù)庫表進行操作
?
# 多個數(shù)據(jù)庫水平分表配置
# 數(shù)據(jù)源名稱,多數(shù)據(jù)源以逗號分隔
spring.shardingsphere.datasource.names=datasource1,datasource2
# 數(shù)據(jù)源 datasource1
spring.shardingsphere.datasource.datasource1.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.datasource1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.datasource1.url=jdbc:mysql://localhost:3306/spring?characterEncoding=utf8&useSSL=false&serverTimezone=GMT+8&rewriteBatchedStatements=true
spring.shardingsphere.datasource.datasource1.username=root
spring.shardingsphere.datasource.datasource1.password=root
# 數(shù)據(jù)源 datasource2
spring.shardingsphere.datasource.datasource2.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.datasource2.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.datasource2.url=jdbc:mysql://localhost:3306/spring1?characterEncoding=utf8&useSSL=false&serverTimezone=GMT+8&rewriteBatchedStatements=true
spring.shardingsphere.datasource.datasource2.username=root
spring.shardingsphere.datasource.datasource2.password=root
# 允許一個實體類對應多張表
spring.main.allow-bean-definition-overriding=true
# 標準分片表配置
# 指定course表分布情況( 配置表在 哪個數(shù)據(jù)庫 的 哪些表里 ),一共有兩個數(shù)據(jù)源datasource1,datasource2,每個庫中有3張表course_1,course_2,course_2
spring.shardingsphere.rules.sharding.tables.course.actual-data-nodes=datasource$->{1..2}.course_$->{1..3}
# 分布式序列策略配置 指定course表里的主鍵cid生成策略為snowflake
spring.shardingsphere.rules.sharding.tables.course.key-generate-strategy.column=cid # 分布式序列列名稱
spring.shardingsphere.rules.sharding.tables.course.key-generate-strategy.key-generator-name=SNOWFLAKE # 分布式序列算法名稱
# 指定分片策略-表 約定 cid%3 取模的值對應存放的表序號
spring.shardingsphere.sharding.tables.course.table-strategy.inline.sharding-column=cid
spring.shardingsphere.sharding.tables.course.table-strategy.inline.algorithm-expression=course_$->{cid % 3 1}
# 指定分片策略-數(shù)據(jù)庫 約定 (user_id%2 1) 對應存放的數(shù)據(jù)源序號
spring.shardingsphere.sharding.tables.course.database-strategy.inline.sharding-column=user_id
spring.shardingsphere.sharding.tables.course.database-strategy.inline.algorithm-expression=datasource$->{user_id % 2 1}
# 打開sql輸出日志
spring.shardingsphere.props.sql.show=true
來源:https://www./content-2-779451.html
|