這篇文章主要講解了“什么是MyCat”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“什么是MyCat”吧!
??MyCat 是目前最流行的基于 java 語言編寫的數據庫中間件,是一個實現了 MySQL 協議的服務器,前端用戶可以把它看作是一個數據庫代理,用 MySQL 客戶端工具和命令行訪問,而其后端可以用 MySQL 原生協議與多個 MySQL 服務器通信,也可以用 JDBC 協議與大多數主流數據庫服務器通信,其核心功能是分庫分表。配合數據庫的主從模式還可實現讀寫分離。
??MyCat 是基于阿里開源的 Cobar 產品而研發,Cobar 的穩定性、可靠性、優秀的架構和性能以及眾多成熟的使用案例使得 MyCat 變得非常的強大。
??MyCat 發展到目前的版本,已經不是一個單純的 MySQL 代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流數據庫,也支持 MongoDB 這種新型NoSQL 方式的存儲,未來還會支持更多類型的存儲。而在最終用戶看來,無論是那種存儲方式,在 MyCat 里,都是一個傳統的數據庫表,支持標準的 SQL 語句進行數據的操作,這樣一來,對前端業務系統來說,可以大幅降低開發難度,提升開發速度。
??MyCat 官網: http://www.mycat.io/

??單一的 MySQL 其數據存儲量級和操作量級有限.
??Mycat 可以管理若干 MySQL 數據庫,同時實現數據的存儲和操作.
Mycat 是 java 編寫的中間件. 開源,免費.
有非常多的人和組織對 Mycat 實行開發,維護,管理,更新.
Mycat 版本提升較快,可以跟隨環境發展.如果有問題,可以快速解決.
Mycat 有開源網站和開源社區.且有官方發布的電子書籍.
Mycat 是阿里原應用 corba 轉型而來的.
??MyCat 在互聯網應用中占比非常高.
??邏輯上的切分. 在物理層面,是使用多庫[database],多表[table]實現的切分.
??就是把原本存儲于一個庫的數據存儲到多個庫上。
??由于對數據庫的讀寫都是對同一個庫進行操作,所以單庫并不能解決大規模并發寫入的問題。例如,我們會建立定義數據庫 workDB、商品數據庫 payDB、用戶數據庫 userDB、日志數據庫 logDB 等,分別用于存儲項目數據定義表、商品定義表、用戶數據表、日志數據表等。
優點
減少增量數據寫入時的鎖對查詢的影響。
由于單表數量下降,常見的查詢操作由于減少了需要掃描的記錄,使得單表單次查詢所需的檢索行數變少,減少了磁盤 IO,時延變短。
缺點:無法解決單表數據量太大的問題。
??把原本存儲于一個表的數據分塊存儲到多個表上。
??當一個表中的數據量過大時,我們可以把該表的數據按照某種規則,進行劃分,然后存儲到多個結構相同的表,和不同的庫上。例如,我們 userDB 中的 userTable 中數據量很大,那么可以把 userDB 切分為結構相同的多個 userDB:part0DB、part1DB 等,再將 userDB 上的 userTable,切分為很多userTable:userTable0、userTable1 等,然后將這些表按照一定的規則存儲到多個 userDB 上。
優點
單表的并發能力提高了,磁盤 I/O 性能也提高了。
如果出現高并發的話,總表可以根據不同的查詢,將并發壓力分到不同的小表里面。
缺點:無法實現表連接查詢。
??Mycat 中定義的 database.是邏輯上存在的.但是物理上是不存在的.主要是針對縱向切分提供的概念.
??Mycat 中定義的 table.是邏輯上存在,物理上是不存在的.主要是針對橫向切分提供的概念.
| 應用 | 端口 |
|---|---|
| MySQL | 3306 |
| Mycat | 8066 |
| tomcat | 8080 |
| Oracle | 1521 |
| nginx | 80 |
| http | 80 |
| redis | 6379 |
??物理 MySQL 存放的主機地址.可以使用主機名,IP,域名定義.
??配置物理的 database. 數據保存的物理節點.就是 database.
??當控制數據的時候,如何訪問物理 database 和 table.就是訪問 dataHost 和 dataNode 的算法. 在 Mycat 處理具體的數據 CRUD 的時候,如何訪問 dataHost 和 dataNode 的算法.如:哈希算法,crc32 算法等.
感謝各位的閱讀,以上就是“什么是MyCat”的內容了,經過本文的學習后,相信大家對什么是MyCat這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。