MyCat入門****-mycat讀寫分離與分庫分表講解

Mycat發展到目前,已經不是一個單純的MySQL代理了,它的後端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流數據庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲。而在最終用戶看來,無論是那種存儲方式,在Mycat裏,都是一個傳統的數據庫表,支持標準的SQL語句進行數據的操作,這樣一來,對前端業務系統來說,可以大幅降低開發難度,提升開發速度 。

Mycat是什麼

Mycat是一個開源數據庫中間件,是一個實現了MySQL協議的的數據庫中間件服務器,我們可以把它看作是一個數據庫代理,用MySQL客戶端工具和命令行訪問Mycat,而Mycat再使用用MySQL原生(Native)協議與多個MySQL服務器通信,也可以用JDBC協議與大多數主流數據庫服務器通信,包括SQL Server、Oracle、DB2、PostgreSQL等主流數據庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲;

一般地,Mycat主要用於代理MySQL數據庫,雖然它也支持去訪問其他類型的數據庫;

Mycat的默認端口是8066,一般地,我們可以使用常見的對象映射框架比如MyBatis操作Mycat。

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之讀寫分離與分庫分表