天天看點

mycat分庫分表原理1、什麼是MyCat2、MyCat有哪些作用?3、MyCat中間件和應用層解決方案對比4、MyCat的原理

mycat分庫分表原理1、什麼是MyCat2、MyCat有哪些作用?3、MyCat中間件和應用層解決方案對比4、MyCat的原理

1、什麼是MyCat

MyCat是一個開源的分布式資料庫系統,是一個實作了MySQL協定的伺服器,前端使用者可以把它看作是一個資料庫代理,用MySQL用戶端工具和指令行通路,而其後端可以用MySQL原生協定與多個MySQL伺服器通信,也可以用JDBC協定與大多數主流資料庫伺服器通信,其核心功能是分表分庫,即将一個大表水準分割為N個小表,存儲在後端MySQL伺服器裡或者其他資料庫裡。

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

2、MyCat有哪些作用?

目前雖然傳統關系資料庫存在一些列的先天弊端,但NoSQL資料庫又将其替代,但是如果傳統資料庫易于擴充和分拆就可以極大的避免單機單庫在資料增删改查方面的缺陷。MyCat就是為了解決資料庫的分拆和擴充而生的開源分布式資料庫系統。其最終的目标就是低成本地将現有的單機資料庫和應用平滑遷移到“雲”端,解決資料存儲和業務規模迅速增長情況下的資料瓶頸問題。

舉個簡單的例子

如果你隻是開一個小賣鋪(小項目) ,那麼你一個人(資料庫)就可以了,但是如果你開一個大型購物中心(大項目),如果不分部門的話,人員(資料)就很難管理,是以按人員不同分了很多部門(資料庫),但是光有部門,沒有一個統一的管理者(mycat),那麼各個部門的配合和協調能力就大大降低了,超市的健康營運就會受到影響。而mycat就是這個管理者,它是對資料庫層做一個抽象,來管理這些資料庫,而最上面的應用隻需要面對一個資料庫層的抽象或者說資料庫中間件就好了,這就是Mycat的核心作用。 

是以可以這樣了解:資料庫是對底層存儲檔案的抽象,而Mycat是對資料庫的抽象

3、MyCat中間件和應用層解決方案對比

mycat分庫分表原理1、什麼是MyCat2、MyCat有哪些作用?3、MyCat中間件和應用層解決方案對比4、MyCat的原理

4、MyCat的原理

MyCat技術原理中最重要的一個動詞是“攔截”,它攔截了使用者發送過來的SQL語句,首先對SQL語句做了一些特定的分析:如分片分析、路由分析、讀寫分離分析、緩存分析等,然後将此SQL發往後端的真實資料庫,并将傳回的結果做适當的處理,最終再傳回給使用者

mycat分庫分表原理1、什麼是MyCat2、MyCat有哪些作用?3、MyCat中間件和應用層解決方案對比4、MyCat的原理

繼續閱讀