91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Sharding JDBC分庫分表怎么配置

發布時間:2021-12-22 11:44:49 來源:億速云 閱讀:362 作者:iii 欄目:大數據

這篇文章主要介紹“Sharding JDBC分庫分表怎么配置”,在日常操作中,相信很多人在Sharding JDBC分庫分表怎么配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Sharding JDBC分庫分表怎么配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

分庫分表配置

分庫需要兩個以上數據源,這里配置test0,test1兩個數據庫

spring.shardingsphere.datasource.names=test0,test1
#test0
spring.shardingsphere.datasource.test0.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.test0.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.test0.jdbcUrl=jdbc:mysql://127.0.0.1:3306/test0
spring.shardingsphere.datasource.test0.username=
spring.shardingsphere.datasource.test0.password=
#test1
spring.shardingsphere.datasource.test1.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.test1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.test1.jdbcUrl=jdbc:mysql://127.0.0.1:3306/test1
spring.shardingsphere.datasource.test1.username=
spring.shardingsphere.datasource.test1.password=

配置分庫策略 按照user_id % 2 進行分庫

# 指定分片列名稱的 shardingColumn
spring.shardingsphere.sharding.default-database-strategy.inline.sharding-column=user_id
# 指定分片算法行表達式的 algorithmExpression
spring.shardingsphere.sharding.default-database-strategy.inline.algorithm-expression=test$->{user_id % 2}

配置綁定表和廣播表

# 設置綁定表
spring.shardingsphere.sharding.binding-tables[0]=health_record,health_task
# 設置廣播表
spring.shardingsphere.sharding.broadcast-tables[0]=health_level

設置分表策略,按照 record_id % 2 進行分表

# user 如果不加這個,數據會隨機插入數據庫中
spring.shardingsphere.sharding.tables.user.actual-data-nodes=test$->{[0,1]}.user
#路由到 test0 否則會隨意添加到兩個數據庫中
spring.shardingsphere.sharding.tables.other_table.actual-data-nodes=test$->{0}.other_table
# health_record
spring.shardingsphere.sharding.tables.health_record.actual-data-nodes=test$->{0..1}.health_record$->{0..1}
spring.shardingsphere.sharding.tables.health_record.table-strategy.inline.algorithm-expression=health_record$->{record_id % 2}
spring.shardingsphere.sharding.tables.health_record.table-strategy.inline.sharding-column=record_id
spring.shardingsphere.sharding.tables.health_record.key-generator.column=record_id
spring.shardingsphere.sharding.tables.health_record.key-generator.type=SNOWFLAKE
# health_task
spring.shardingsphere.sharding.tables.health_task.actual-data-nodes=test$->{0..1}.health_task$->{0..1}
spring.shardingsphere.sharding.tables.health_task.table-strategy.inline.algorithm-expression=health_task$->{record_id % 2}
spring.shardingsphere.sharding.tables.health_task.table-strategy.inline.sharding-column=record_id
spring.shardingsphere.sharding.tables.health_task.key-generator.column=task_id
spring.shardingsphere.sharding.tables.health_task.key-generator.type=SNOWFLAKE

完整配置

server.port=8080
#打印sql
spring.shardingsphere.props.sql.show=true
#配置數據源
spring.shardingsphere.datasource.names=test0,test1
#test0
spring.shardingsphere.datasource.test0.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.test0.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.test0.jdbcUrl=jdbc:mysql://127.0.0.1:3306/test0
spring.shardingsphere.datasource.test0.username=devadmin
spring.shardingsphere.datasource.test0.password=
#test1
spring.shardingsphere.datasource.test1.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.test1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.test1.jdbcUrl=jdbc:mysql://127.0.0.1:3306/test1
spring.shardingsphere.datasource.test1.username=devadmin
spring.shardingsphere.datasource.test1.password=
# 指定分片列名稱的 shardingColumn
spring.shardingsphere.sharding.default-database-strategy.inline.sharding-column=user_id
# 指定分片算法行表達式的 algorithmExpression
spring.shardingsphere.sharding.default-database-strategy.inline.algorithm-expression=test$->{user_id % 2}
# 設置綁定表
spring.shardingsphere.sharding.binding-tables[0]=health_record,health_task
# 設置廣播表
spring.shardingsphere.sharding.broadcast-tables[0]=health_level
# user 如果不加這個,數據會隨機插入數據庫中
spring.shardingsphere.sharding.tables.user.actual-data-nodes=test$->{[0,1]}.user
#路由到 test0 否則會隨意添加到兩個數據庫中
spring.shardingsphere.sharding.tables.other_table.actual-data-nodes=test$->{0}.other_table
# health_record
spring.shardingsphere.sharding.tables.health_record.actual-data-nodes=test$->{0..1}.health_record$->{0..1}
spring.shardingsphere.sharding.tables.health_record.table-strategy.inline.algorithm-expression=health_record$->{record_id % 2}
spring.shardingsphere.sharding.tables.health_record.table-strategy.inline.sharding-column=record_id
spring.shardingsphere.sharding.tables.health_record.key-generator.column=record_id
spring.shardingsphere.sharding.tables.health_record.key-generator.type=SNOWFLAKE
# health_task
spring.shardingsphere.sharding.tables.health_task.actual-data-nodes=test$->{0..1}.health_task$->{0..1}
spring.shardingsphere.sharding.tables.health_task.table-strategy.inline.algorithm-expression=health_task$->{record_id % 2}
spring.shardingsphere.sharding.tables.health_task.table-strategy.inline.sharding-column=record_id
spring.shardingsphere.sharding.tables.health_task.key-generator.column=task_id
spring.shardingsphere.sharding.tables.health_task.key-generator.type=SNOWFLAKE

數據庫

test0 test1 兩個數據庫的結構如下:

Sharding JDBC分庫分表怎么配置 Sharding JDBC分庫分表怎么配置

執行測試方法之后,數據庫的數據如下:

health_level 是廣播表,所以test0、test1中的數據是一樣的

Sharding JDBC分庫分表怎么配置 Sharding JDBC分庫分表怎么配置

user 表中的數據分布。test0中user_id 都為偶數,test1中user_id都為奇數。

Sharding JDBC分庫分表怎么配置 Sharding JDBC分庫分表怎么配置

testx_health_record0 、testx_health_task0 中 record_id 都為偶數,testx_health_record1、testx_health_task11中record_ir都為奇數。(我們只截取healt_record表,health_task表的數據是一樣的)

test0 中 health_record0 和 health_record1

Sharding JDBC分庫分表怎么配置 Sharding JDBC分庫分表怎么配置

test1 中 health_record0 和 health_record1

Sharding JDBC分庫分表怎么配置 Sharding JDBC分庫分表怎么配置

到此,關于“Sharding JDBC分庫分表怎么配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

库车县| 友谊县| 江永县| 台中县| 原平市| 讷河市| 苏尼特左旗| 达尔| 靖边县| 鲁山县| 张家口市| 巴塘县| 故城县| 灵台县| 九江市| 定西市| 邢台市| 孟州市| 正安县| 称多县| 临洮县| 志丹县| 武宣县| 古蔺县| 灵川县| 确山县| 泽州县| 临城县| 郁南县| 江阴市| 山阳县| 苍南县| 彭阳县| 苏州市| 北海市| 平遥县| 仙桃市| 花莲市| 南京市| 绥江县| 石楼县|