讀寫分離的目的是分擔主庫讀的壓力(對於資料量大並不起作用),但這裡存在乙個資料複製的問題。
這裡有幾種解決方案:
基於資料庫的日誌進行分庫分表。
對資料做平滑遷移!
基本原則是讀請求傳送到從庫,寫請求傳送到主庫。
為了避免主從延遲帶來的讀不到剛剛更新的資料的問題,同一會話中,寫請求結束後指定時間內的讀請求也發到主庫,此時間可配,由write_time_interval引數指定。如果此時間內沒有新的寫請求,則會話回到從庫。
事務內的sql不進行讀寫分離,全部發到主庫。
dbproxy會快取影響會話狀態的sql命令,當同乙個客戶端會話對應的mysql切換時,會在切換後的mysql上回放這些快取的sql命令,以保證客戶端會話的一致性。影響會話狀態的sql包括use命令和set命令。
分庫分表與讀寫分離
隨著業務的發展,使用者數量與資料數量不斷增加,迫使進行分庫分表。所謂分表就是指將乙個表的資料存放到多個表,然後查詢時候按id的範圍到對應的表裡去查。因為資料太多,單個表已經不足以儲存。所謂分庫就是將資料存放到多個資料庫中,訪問時訪問其中乙個庫。社群已經黃了,基本不用了。不支援聯表,且依賴diamon...
mycat實現分庫分表讀寫分離
mysql8.0 主從同步配置 本地部署mycat的包為 mycat server 1.6.7.6 release 20201112144313 mac.tar.gz 2 解壓mycat包到指定目錄 tar zvf mycat server 1.6.7.6 release 2020111214431...
django orm 讀寫分離,分庫分app
1,讀寫分離 第一步 在settings下面配置 databases 第二步 資料庫遷移。python manage.py migrate 預設使用default的資料配置,完整的寫法為 python manage.py migrate database default 同樣的遷移完預設的資料庫後,...