1. 程式人生 > >MySQL分庫分表有哪些成熟的中介軟體?不要破壞到原有程式設計的?

MySQL分庫分表有哪些成熟的中介軟體?不要破壞到原有程式設計的?

首先Mycat是一個開源的分散式資料庫系統,但是由於真正的資料庫需要儲存引擎的,而Mycat並沒有儲存引擎,所以並不是完全意義的分散式資料庫系統的。

Mycat: 資料庫中介軟體技術的:

這個前端使用中介軟體後端使用資料庫(mysql oracle)支援的,可以對資料庫叢集有效的管理方便擴容,對大型資料表橫縱分片,這個分片後的表連線的查詢,是對前端開發處於透明狀態的。

還有這個myCat 的話需要在JDK7版本以上執行。MyCat推薦使用mySql做叢集的。

這個MyCAT 有提供編譯好的安裝包,支援 windows、Linux、Mac、Solaris的 等系統上安裝運行了。

建議的資料切分原則的:

第一原則:能不切分儘量不要切分的。

第二原則:如果要切分一定要選擇合適的切分規則,提前規劃好的。

第三原則:資料切分儘量通過資料冗餘或表分組來降低跨庫 的Join 的可能吧。

這個第四原則:由於資料庫中介軟體對資料 Join 實現的優劣難以把握,而且實現高效能難度極大,業務讀取儘量少使用多表join的,可能分散式事務問題的。

講講Mycat的原理的 :

這個Mycat的原理中最重要的是攔截的,它攔截了使用者傳送過來的SQL語句,首先對SQL語句做了一些特定的分析::如分片分析的、路由分析、讀寫分離分析、快取分析等的,然後將此SQL發往後端的真實資料庫中,然後在並將返回的結果做適當的處理,最終再返回給使用者了的了。

我最後數一下這個:

Mycat在1.6版本以後已經完全支援 XA 分散式強事務型別了的的,可以很好地解決分散式事物的基本問題了的。

這個完整的流程圖如圖所示結果了: