Mycat發展到目前,已經不是一個單純的MySQL代理了,它的後端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流數據庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲。而在最終用戶看來,無論是那種存儲方式,在Mycat裏,都是一個傳統的數據庫表,支持標準的SQL語句進行數據的操作,這樣一來,對前端業務系統來說,可以大幅降低開發難度,提升開發速度 。
Mycat是一個開源數據庫中間件,是一個實現了MySQL協議的的數據庫中間件服務器,我們可以把它看作是一個數據庫代理,用MySQL客戶端工具和命令行訪問Mycat,而Mycat再使用用MySQL原生(Native)協議與多個MySQL服務器通信,也可以用JDBC協議與大多數主流數據庫服務器通信,包括SQL Server、Oracle、DB2、PostgreSQL等主流數據庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲;
一般地,Mycat主要用於代理MySQL數據庫,雖然它也支持去訪問其他類型的數據庫;
Mycat的默認端口是8066,一般地,我們可以使用常見的對象映射框架比如MyBatis操作Mycat。
1、數據庫的讀寫分離
通過Mycat可以自動實現寫數據時操作主數據庫,讀數據時操作從數據庫,這樣能有效地減輕數據庫壓力,也能減輕IO壓力。
實現讀寫分離,當主出現故障後,Mycat自動切換到另一個主上,進而提供高可用的數據庫服務,當然我需要部署多主多從的模式
2、數據庫分庫分表
分庫分表指的是對數據庫數據的拆分,分爲兩種:水平拆分和垂直拆分
水平切分(橫向切分)
根據表中數據的邏輯關係,將同一個表中的數據按照某種條件拆分到多臺數據庫服務器上面
垂直切分(縱向切分)
按照不同的表來切分到不同的數據庫服務器之上
001.MyCat****:背景
002.MyCat****:MyCat介紹
003.MyCat****:能做什麼-讀寫分離
004.MyCat****:能做什麼-水平拆分
005.MyCat****:能做什麼-垂直拆分
006.MyCat****:安裝MyCat
007.MyCat****:配置文件解讀-server文件
008.MyCat****:配置文件解讀-schema
009.MyCat****:讀寫分離配置
010.MyCat****:讀寫分離測試
011.MyCat****:Java代碼鏈接MyCat
012.MyCat****:水平拆分
013.MyCat****:水平拆分測試
014.MyCat****:垂直拆分
015.MyCat****:主鍵生成策略
016.MyCat****:總結
配套****👇
Mycat之讀寫分離與分庫分表