軟件系統(tǒng)數(shù)據(jù)庫(kù)的分庫(kù)分表設(shè)計(jì)
系統(tǒng)讀寫分離、分庫(kù)分表技術(shù)實(shí)現(xiàn)采用MyCat中間件,MyCat 是一款開源(遵循 Apache License 2.0 協(xié)議)的大數(shù)據(jù)庫(kù)集群中間件,用于搭建數(shù)據(jù)庫(kù)的分布式集群,實(shí)現(xiàn)分庫(kù)分表功能,解決數(shù)據(jù)庫(kù)中海量數(shù)據(jù)存儲(chǔ)和查詢性能的問(wèn)題。MyCat 還是一個(gè)數(shù)據(jù)庫(kù)的集群中間件,主要實(shí)現(xiàn) RDBMS 數(shù)據(jù)庫(kù)集群的故障轉(zhuǎn)移、負(fù)載均衡、讀寫分離等功能。
MyCat 的關(guān)鍵技術(shù)是分庫(kù)分表,它通過(guò)將數(shù)據(jù)庫(kù)中物理表中的數(shù)據(jù)切分成多個(gè)表分片,并將表分片存儲(chǔ)在多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)上,從而構(gòu)建分布式存儲(chǔ)架構(gòu),提升巨表關(guān)聯(lián)、排序、分組聚合等 OLAP 的能力。
分庫(kù)分表的工作原理:攔截客戶端提交的SQL語(yǔ)句并進(jìn)行分析(如:分片分析、路由分析、讀寫分離分析、緩存分析等),然后將此SQL發(fā)往后端的真實(shí)數(shù)據(jù)庫(kù),并將返回的結(jié)果處理(如:數(shù)據(jù)合并)后再返回給客戶端。如下圖:
分庫(kù)分表單規(guī)則匹配1
分庫(kù)分表單規(guī)則匹配2
MyCat 還是一個(gè)位于數(shù)據(jù)庫(kù)和客戶端之間,主要實(shí)現(xiàn)讀寫分離功能的集群中間件。主要解決在業(yè)務(wù)系統(tǒng)存在大量的讀并發(fā)時(shí),通過(guò)負(fù)載均衡提高查詢請(qǐng)求吞吐量,并將多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)集群化管理,在多主集群中單點(diǎn)數(shù)據(jù)庫(kù)故障時(shí)候選主節(jié)點(diǎn)切換。
圖90MyCat數(shù)據(jù)庫(kù)集群
MyCat組件適用于的場(chǎng)景如下:
1)適用于 MySQL 、Oracle等主流數(shù)據(jù)庫(kù)集群的讀寫分離、候選主節(jié)點(diǎn)切換、負(fù)載均衡等高可用模式;
2)適用于 MySQL 、Oracle等主流數(shù)據(jù)庫(kù)集群的分表分庫(kù),對(duì)于單表數(shù)據(jù)超過(guò)1000 萬(wàn)的物理表進(jìn)行分片,最大支持1000億數(shù)據(jù)的單表分片;
3)適用于多租戶應(yīng)用,通過(guò)分庫(kù)分表實(shí)現(xiàn)應(yīng)用數(shù)據(jù)按照租戶劃分物理數(shù)據(jù)庫(kù)存儲(chǔ)。從租戶的角度來(lái)看,個(gè)人應(yīng)用的數(shù)據(jù)集約存儲(chǔ)在獨(dú)立的空間,從應(yīng)用角度看,分布式數(shù)據(jù)庫(kù)有利于海量數(shù)據(jù)的分析和查詢;
4)適用于海量數(shù)據(jù)的統(tǒng)計(jì)、分析、研判等 OLAP 能力的支撐數(shù)據(jù)庫(kù),分庫(kù)分表能夠快速完成巨表關(guān)聯(lián)、排序、分組聚合等數(shù)據(jù)計(jì)算功能;
5) 適用于海量數(shù)據(jù)的實(shí)時(shí)查詢,如:百億數(shù)據(jù)頻繁查詢的記錄需要在3秒內(nèi)反饋結(jié)果,包括主鍵查詢、范圍查詢或其他屬性查詢的情況;
?數(shù)據(jù)庫(kù)集群部署拓?fù)鋱D
審核編輯 黃宇
-
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3907瀏覽量
65948 -
軟件系統(tǒng)
+關(guān)注
關(guān)注
0文章
65瀏覽量
9646
發(fā)布評(píng)論請(qǐng)先 登錄
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

MySQL數(shù)據(jù)庫(kù)是什么
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)文件拷貝后服務(wù)無(wú)法啟動(dòng)的數(shù)據(jù)恢復(fù)

或許我們都被分庫(kù)分表約束了思維
MySQL數(shù)據(jù)庫(kù)的安裝

云數(shù)據(jù)庫(kù)是哪種數(shù)據(jù)庫(kù)類型?
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程

Mybatis 攔截器實(shí)現(xiàn)單數(shù)據(jù)源內(nèi)多數(shù)據(jù)庫(kù)切換
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫(kù)ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
Sybase數(shù)據(jù)恢復(fù)—Sybase數(shù)據(jù)庫(kù)無(wú)法啟動(dòng)怎么恢復(fù)數(shù)據(jù)?

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過(guò)拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫(kù)底層File Record被截?cái)酁?的數(shù)據(jù)恢復(fù)案例

評(píng)論