Sharding-Proxy分庫(kù)分表的實(shí)現(xiàn)方案
一 安裝:
http://m.fzitv.net/article/237937.htm
二資源
- ROLE
- master1
- slave1
- slave2
- Sharding
三為什么分庫(kù)分表
業(yè)務(wù)越來(lái)越大,數(shù)據(jù)庫(kù)扛不住啊。
扛不住會(huì)怎樣呢?數(shù)據(jù)庫(kù)性能降低
解決方法:
1 增加mysql硬件資源
2 歷史數(shù)據(jù)歸檔
3 增加數(shù)據(jù)庫(kù)—— 讀寫(xiě)分離
4 增加數(shù)據(jù)庫(kù)—— 分庫(kù)分表
5 云數(shù)據(jù)庫(kù)TIDB
四如何分庫(kù)分表
1 垂直拆分 -- 微服務(wù)化 -- 一個(gè)服務(wù)一個(gè)庫(kù)
1) 每個(gè)庫(kù)(表)的數(shù)據(jù)結(jié)構(gòu)一般不同
2) 每個(gè)庫(kù)(表)至少有一個(gè)列一樣—— 為了join缺點(diǎn):
1)數(shù)據(jù)不均衡。
2 水平拆分--分庫(kù)分表 -- 數(shù)據(jù)存的不一樣
1)每個(gè)庫(kù)(表)的數(shù)據(jù)結(jié)構(gòu)都一樣
2)雙十一訂單大,訂單一定均分到012庫(kù)中,解決數(shù)據(jù)熱點(diǎn)問(wèn)題缺點(diǎn):1)擴(kuò)容的問(wèn)題,麻煩
3 水平拆分和垂直拆分結(jié)合:垂直拆庫(kù),水平拆表
五Sharding-Proxy分庫(kù)分表實(shí)戰(zhàn)
1 master建庫(kù)建表
庫(kù): bookstore_0 bookstore_1 在庫(kù)中分別建表: bookinfo_0 bookinfo_1

2 修改Config-sharding.yaml
①把mysql驅(qū)動(dòng)jar包復(fù)制到lib文件夾下
②config-sharding.yaml
schemaName: bookstore
dataSources:
bookstore_0:
url: jdbc:mysql://IP:3306/bookstore_0?serverTimezone=UTC&useSSL=false
username: root
password:
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
bookstore_1:
url: jdbc:mysql://IP:3306/bookstore_0?serverTimezone=UTC&useSSL=false
username: root
password:
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
shardingRule:
tables:
bookinfo:
actualDataNodes: bookstore_${0..1}.bookinfo_${0..1}
databaseStrategy:
inline:
shardingColumn: storeid
algorithmExpression: bookstore_${storeid % 2}
tableStrategy:
inline:
shardingColumn: bookid
algorithmExpression: bookinfo_${bookid % 2}
#keyGenerator:
#type: SNOWFLAKE
#column: order_id
bindingTables:
- bookinfo
defaultDatabaseStrategy:
inline:
shardingColumn: storeid
algorithmExpression: bookstore_${storeid % 2}
defaultTableStrategy:
none:
- mysql -hIP -uroot -P3307 -p
4 進(jìn)行sql命令操作,只能看到一個(gè)庫(kù)
5 插入數(shù)據(jù)。Sharding-Proxy代理端里有數(shù)據(jù)了

6 連接真正的數(shù)據(jù)庫(kù)
這里有個(gè)問(wèn)題:
分庫(kù)失敗,全部寫(xiě)入bookstore_0
分表成功

到此這篇關(guān)于Sharding-Proxy分庫(kù)分表的文章就介紹到這了,更多相關(guān)Sharding-Proxy分庫(kù)分表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot?整合?Fisco?Bcos的案例分析(區(qū)塊鏈)
本篇文章介紹的?Spring?Boot?整合?Fisco?Bcos的案例,是在阿里云服務(wù)器上部署驗(yàn)證的。大家可根據(jù)自己的電腦環(huán)境,對(duì)比該案例進(jìn)行開(kāi)發(fā)即可,具體案例代碼跟隨小編一起看看吧2022-01-01
Spring中Bean創(chuàng)建完后打印語(yǔ)句的兩種方法
這篇文章主要介紹了Spring中Bean創(chuàng)建完后打印語(yǔ)句的兩種方法,一個(gè)是實(shí)現(xiàn)InitializingBean接口,另一個(gè)使用@Bean注解和initMethod屬性,通過(guò)代碼示例介紹的非常詳細(xì),感興趣的小伙伴可以參考閱讀2023-07-07
mybatis in查詢條件過(guò)長(zhǎng)的解決方案
這篇文章主要介紹了mybatis in查詢條件過(guò)長(zhǎng)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Mybatis-Plus?動(dòng)態(tài)表名的實(shí)踐
本文主要介紹了Mybatis-Plus?動(dòng)態(tài)表名的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
Spring Boot配置Thymeleaf(gradle)的簡(jiǎn)單使用
今天小編就為大家分享一篇關(guān)于Spring Boot配置Thymeleaf(gradle)的簡(jiǎn)單使用,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
Java串口通信JSerialComm的實(shí)現(xiàn)
本文介紹了使用JSerialComm庫(kù)進(jìn)行Java串口通信,包括引入庫(kù)的方式、設(shè)置和操作串口、發(fā)送與接收數(shù)據(jù)以及添加數(shù)據(jù)監(jiān)聽(tīng)器,具有一定的參考價(jià)值,感興趣的可以了解一下2026-01-01
Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in)
這篇文章主要介紹了Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot動(dòng)態(tài)定時(shí)功能實(shí)現(xiàn)方案詳解
在SpringBoot項(xiàng)目中簡(jiǎn)單使用定時(shí)任務(wù),不過(guò)由于要借助cron表達(dá)式且都提前定義好放在配置文件里,不能在項(xiàng)目運(yùn)行中動(dòng)態(tài)修改任務(wù)執(zhí)行時(shí)間,實(shí)在不太靈活?,F(xiàn)在我們就來(lái)實(shí)現(xiàn)可以動(dòng)態(tài)修改cron表達(dá)式的定時(shí)任務(wù),感興趣的可以了解一下2022-11-11
Java 8對(duì)LinkedHashSet元素進(jìn)行排序的操作方法
LinkedHashSet 是 Java 集合框架中的一個(gè)類(lèi),它繼承自 HashSet,并實(shí)現(xiàn)了 Set 接口,然而,LinkedHashSet 不支持元素的排序,它僅僅保持插入順序,所以本文給大家介紹了Java 8 如何對(duì) LinkedHashSet 元素進(jìn)行排序,需要的朋友可以參考下2024-11-11

