資料訪問層 分庫分表與讀寫分離

2021-08-13 08:10:30 字數 401 閱讀 9375

讀寫分離的目的是分擔主庫讀的壓力(對於資料量大並不起作用),但這裡存在乙個資料複製的問題。

這裡有幾種解決方案:

基於資料庫的日誌進行分庫分表。

對資料做平滑遷移!

基本原則是讀請求傳送到從庫,寫請求傳送到主庫。

為了避免主從延遲帶來的讀不到剛剛更新的資料的問題,同一會話中,寫請求結束後指定時間內的讀請求也發到主庫,此時間可配,由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 同樣的遷移完預設的資料庫後,...