https://hoohoo.top/blog/mysql-master-slave-reading-and-writing-separation/
主 (Master)
首先,在設定主資料庫時,必須先配置好 log-bin ,並且指定要儲存「二進位」的路徑,並且在操作資料存取過程會再透過 binary log event 將資料寫入 master binary log。
從 (Slave)
完成寫入二進位制的紀錄後,Master會再通知儲存引擎,讓 Slave 將 master binary log 複製到中繼 log,過程會是從 Master 發起一個 I/O 來開啟一個連線,接著執行 binlog dump process,這個 binlog dump process 大部分時間都會處於休眠狀態,當 master 接收到資料寫入 master binary log 時,bingo dump process 就會將資料進行讀取,接著會從中繼資料會被 SQL 線程讀取,並且存回 Slave 資料庫。
小提醒,在設定 Slave 資料庫時,建議以 MyISAM 引擎增加讀取性能。
簡單說寫入更新寫進Master,Slave只有讀,討論到這個部分是因為
GORM語法,通常MasterDB 及 SlaveDB 自己就已經設定好了,就無需下這個
Name string gorm:"<-:create" // 允许读和创建
Name string gorm:"<-:update" // 允许读和更新
type User struct {
deleteAt
}