一、mycat操做java
(1)垂直切分配置mysql
(2)水平切分配置web
(3)mycat修改schema.xml以後熱重啓sql
(4)mycat註解的實現數據庫
(5)mycat高可用(搭配HAproxy等一塊兒作集羣,多個mycat節點)app
二、mycat能夠配置多schema、多用戶、多數據庫節點進行數據水平、垂直切分測試
(1)java的程序demo測試經過,並能夠用jdbc或jpa來進行數據操做,可是demo只針對一個schema、一個用戶進行鏈接,跟之前一個庫的狀況差很少大數據
(2)多數據庫用mycat進行切分的話,join表的狀況只支持子父兩級表的join,多於兩個表的關聯有難度,建議用程序解決,屆時開發要注意優化
三、mycat熱啓動xml
用mysql鏈接的mycat終端,進行reload configuration能夠作到在運行中的mycat熱重啓,從新加載修改過配置文件的配置
四、mycat註解注入schema來進行分數據庫執行語句
這是多租戶(一個租戶一個數據庫)的關鍵,可是試了好屢次不行,也找不到對應的解決的帖子,由於各個帖子都是抄攻略的,恰恰攻略一句帶過。。。
五、mycat-eye:能夠對mycat的狀況進行監控,配置mycat節點、物理數據庫節點能夠進行監測,還能有統計信息,數據庫優化的一些統計。是一個web程序
SAAS的數據庫部署方案
優勢:一個租戶一個數據庫,數據隔離性好,數據庫的結構清晰不須要多加appID來區分不一樣的租戶數據
缺點:目前技術難題是沒實現到mycat的註解,並且不知道中間怎麼進行轉發;另外,很難維護每一個數據庫的表結構等等,隨着租戶的增多,數據庫的更新會愈來愈難,且須要專門維護增長schema和熱重啓mycat的程序
優勢:可實現,較容易開發,且數據庫的數量不會輕易改變,數據庫的更新維護比較方便,不須要特意去實現一個專門維護增長schema和熱重啓mycat的程序
缺點:數據隔離性通常,業務程序要注意隔離性。另外每一個庫每一個表都要有appID這個字段做爲冗餘判斷字段