模擬這樣乙個場景:
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...