中文網:
權威指南:document/mycat-definitive-guide.pdf
主要功能:分庫分表(橫切,縱切),主從複製讀寫分離,弱xa事務,資料庫集群監控
1 安裝配置
在win環境下測試,在\mycat\conf下存放著配置檔案,雙擊\mycat\bin\startup_nowrap.bat啟動mycat,需要安裝jdk。
\mycat\conf\server.xml 配置伺服器/使用者登入資訊
\mycat\conf\schema.xml 配置虛擬庫/表/真實庫節點資訊
\mycat\conf\rule.xml 配置資料分配規則演算法
2 啟動方式
1 \mycat\bin\startup_nowrap.bat雙擊執行,啟動mycat
2 \mycat\bin\目錄下 shift+右鍵選擇powershell,輸入.\startup_nowrap.bat 啟動。(推薦,此方式可以看到啟動時檢測異常)
2 鏈結mycat,可通過任意sql ide根據上篇配置的登入資訊,鏈結mycat資料庫集群
mycat中介軟體的優點就是資料庫集群和應用解耦。無論是ide還是開發的應用程式,其鏈結與操作方式與鏈結操作乙個資料庫相同,所有對集群的控制都由mycat完成。
3 mycat支援多資料庫的垮庫兩表join,多餘兩個表時會出錯。支援不垮庫任意表join
3.1 sharejoin
支援垮庫兩表join
select前加入/*!mycat:catlet=demo.catlets.sharejoin */
但要保證資料insert時的分配規則和資料庫分片資訊,與當前配置一致。這樣在select join時,mycat才能正確的逆推找出需 要資料所對應的真實資料庫分片。
一句select中不能多於兩個表垮庫join
在mycat配置時應盡量避免同組相關資料垮庫(見3.3)
3.2 全域性表global --- 每個庫分片中都有此表完整資料,避免垮庫join
若某乙個表是乙個標準表,則將其設定為global。這樣在查詢join時避免對此表的垮庫關聯
3.3 er-join
通過父子表的概念,將同組相關資料分配到同一分片上,避免垮庫join。
乙個父表可以有多個子表,各個子表可以有各自的子表。
經測試:父子表模式解決同組資料的分片一致性問題,提高了查詢效率。並且可以實現符合父子表關聯關係的多表join查詢
例1:訂單彙總,訂單明細,就可以通過父子表配置,將同一訂單的資料分配到相同資料庫分片上,避免垮庫關聯
例2:符合父子表關聯關係的多表join查詢
select a.id,a.name,b.id,b.name,c.id,c.name,d.id,d.name from mycat_test1 a
join mycat_test1_copy b on a.xgid=b.id
join mycat_test1_copy1 d on a.xgid=d.id
join mycat_test1_copy_copy c on c.id=b.xgid
order by a.id
注意:
a 不要在查詢前加/*!mycat:catlet=demo.catlets.sharejoin */,因為加上這個指令,執行的是sharejoin而不是執行erjoin
b 當不同分片的父表依賴於子表的同一行時,子表insert只會進入其中乙個分片,會造成erjoin時其他父表關聯不到其對應子表,返回的結果集少於應得結果集。這個時候就要轉換成sharejoin 查詢
例:父表id=1,id=2兩條都是xgid=3,但是父表兩條記錄通過mod-long演算法分配到不同資料庫中,但是子表id=3的資料行,只會insert進入其中乙個分片
c 一定要保證父表內容在子表之前存在
4 查詢/插入 要寫列名
5 主從複製讀寫分離
分頁
mycat分頁的大坑一定要注意:
在對應的分片上去查詢分頁資料的時候是從第一條記錄開始掃瞄,然後再取出對應的分頁資料,如
select * from customer order by id limit 1000100, 100;
這個sql語句被mycat轉化後
1 -> dn1
2 -> dn2
所以要在mycat的server.xm裡面開啟使用非堆記憶體。否則記憶體會爆掉
1
日誌
日誌開啟了debug級別。debug級別的時候tps下降明顯
資料庫集群布置 3 mycat中介軟體簡介
1.乙個徹底開源的,面向企業應用開發的大資料庫集群 2.支援事務 acid 可以替代mysql的加強版資料庫 3.乙個可以視為mysql集群的企業級資料庫,用來替代昂貴的oracle集群 4.乙個融合記憶體快取技術 nosql技術 hdfs大資料的新型sql server 5.結合傳統資料庫和新型分...
資料庫中介軟體 MyCat配置示例
資料庫中介軟體 mycat mycat連線協議和mysql一樣 mycat支援mysql oracle sqlserver等 安裝完mysql後啟動服務 service mysql start 登入 mysql u root 設定遠端登入 grant all privileges on to roo...
MyCat 取代Cobar資料庫中介軟體
什麼是mycat?簡單的說,mycat就是 乙個徹底開源的,面向企業應用開發的 大資料庫集群 支援事務 acid 可以替代mysql的加強版資料庫 乙個可以視為 mysql 集群的企業級資料庫,用來替代昂貴的oracle集群 乙個融合記憶體快取技術 nosql技術 hdfs大資料的新型sql ser...