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

或許我們都被分庫分表約束了思維
MySQL數據庫的安裝

云數據庫是哪種數據庫類型?
Mybatis 攔截器實現單數據源內多數據庫切換
數據庫數據恢復—MYSQL數據庫ibdata1文件損壞的數據恢復案例
數據庫數據恢復—通過拼接數據庫碎片恢復SQLserver數據庫

數據庫數據恢復—SQL Server數據庫出現823錯誤的數據恢復案例

數據庫數據恢復—SqlServer數據庫底層File Record被截斷為0的數據恢復案例

評論