MyCat分庫分表 練習

2022-07-18 00:09:18 字數 1648 閱讀 9679

模擬這樣乙個場景:

1、將資料庫按業務「垂直」拆分成使用者庫和訂單庫;

2、使用者庫做主從,讀寫分離;

3、訂單庫做「水平」切分,並且每個分片表做主從,讀寫分離;

一、垂直切分

1、準備兩個mysql資料庫

2、mycat的配置檔案

server.xml (主要是修改schemas,修改成schemas.xml中的schema名)

啟動mycat,兩張表出現了。

插入一條資料,檢視mycat和使用者庫都有了資料,再往訂單表中插入一條。

關聯這兩個實際處於兩個庫的表看看,兩個表我插入的資料 id都是1,所以按id關聯,報錯了,目前不能跨庫關聯,先通過應用層介面呼叫的方式解決吧,其實有解決方案,後邊深入學習後再解決。

好,垂直切分完成。

二、使用者庫主從,讀寫分離

1、準備一台mysql,做為使用者庫的從機,主從兩庫的表要一樣。

2、修改mycat配置檔案,schema.xml,就是新增一句配置

1. balance="0",不開啟讀寫分離,所有讀操作都傳送到當前可用的writehost上。

2. balance="1",所有讀操作都隨機的傳送到第乙個writehost以外的所有節點上。

3. balance="2",所有讀操作都隨機的在writehost、readhost上分發。

4.  balance="3",所有讀操作都隨機的在readhost上分發。

我們把從節點的users表中的資料修改一下,方便看出是讀的哪個庫的資料。

發現,不管查多少次,都是主節點的,我們把banlance改成2,發現查詢的資料再主從節點上來回切換。把balance改成3,只查詢從節點了。

還缺少乙個主從節點的資料同步,這塊就略過了,在《主從》那篇你有。

三、訂單庫,水平切分

Mycat分庫分表

schema.xml 配置 name dn1 datahost localhost1 database db1 name dn2 datahost localhost1 database db2 name dn3 datahost localhost1 database db3 把localhost...

mycat分庫分表

一 修改schema.xml select user 二 修改server.xml 0 0 10 011m 1k0 384m true 123456 testdb user testdb true 三 啟動關閉1 進入bin目錄,2 啟動輸入.mycat start。關閉命令 mycat stop ...

mycat分庫分表

mycat是資料庫分庫分表的中介軟體,mycat使用最多的兩個功能是 讀寫分離和分庫分表功能,支援全域性表和e r關係 這兩個比較實用 mycat相當於是乙個 可以將多個實際資料庫組合成乙個完整的虛擬資料庫 我們可以直接訪問mycat的埠,其使用的是mysql原生的協議連線資料庫進行通訊 mycat...