軟件系統數據庫的分庫分表設計
系統讀寫分離、分庫分表技術實現采用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文章
4020瀏覽量
68340 -
軟件系統
+關注
關注
0文章
70瀏覽量
9807
發布評論請先 登錄
艾體寶干貨 | 多模型數據庫解決的到底是什么問題?
2025開放原子開發者大會AI時代數據庫創新實踐分論壇成功舉辦
mysql數據恢復—mysql數據庫表被truncate的數據恢復案例
數據庫數據恢復—服務器異常斷電導致Oracle數據庫故障的數據恢復案例
三款主流國產數據庫的技術特點
企業級MySQL數據庫管理指南
oracle數據恢復—oracle數據庫誤執行錯誤truncate命令如何恢復數據?
SQLSERVER數據庫是什么
MySQL數據庫是什么
數據庫數據恢復——MongoDB數據庫文件拷貝后服務無法啟動的數據恢復
軟件系統數據庫的分庫分表設計
評論