讀寫分離簡介
更新時間 2024-12-04 11:02:20
最近更新時間: 2024-12-04 11:02:20
分享文章
本章節會介紹MySQL讀寫分離的功能
讀寫分離是指通過一個讀寫分離的連接地址實現讀寫請求的自動轉發。創建只讀實例后,您可以開通讀寫分離功能,通過RDS的讀寫分離連接地址,寫請求自動訪問主實例,讀請求按照讀權重設置自動訪問各個實例。
Proxy負載均衡基于負載的自動調度策略,實現多個只讀節點間的負載均衡。
備注:目前支持的局點有華北、廣州4、蘇州、深圳。
功能限制
注意由于開啟讀寫分離時,系統會自動刪除已有的帳戶rdsProxy,然后自動創建新的rdsProxy帳戶,關閉讀寫分離時,系統也會自動刪除已有的帳戶rdsProxy。因此,建議您不要創建rdsProxy帳戶,防止被系統誤刪除。
- 開啟讀寫分離功能,需要RDS for MySQL為主備實例,并且主實例規格大于或等于4U8GB。
- 讀寫分離地址都是內網地址,只能通過內網連接。
- 開通讀寫分離時必須保證至少有一個只讀實例,且主實例和只讀實例必須處于同一Region。
- 開啟讀寫分離功能后,刪除RDS for MySQL主實例,會同步刪除只讀實例,并關閉讀寫分離功能。
- 開啟讀寫分離功能后,主實例和只讀實例均不允許修改數據庫端口、安全組和內網地址,建議先修改完端口或內網地址后再啟用讀寫分離。
- 讀寫分離功能不支持SSL加密。
- 讀寫分離功能不支持壓縮協議。
- 讀寫分離不支持事務隔離級別READ-UNCOMMITTED。
- 如果執行了Multi-Statements,當前連接的后續請求會全部路由到主節點,需斷開當前連接并重新連接才能恢復讀寫分離。
- 使用讀寫分離的連接地址時,事務請求都會路由到主實例,不保證非事務讀的一致性,業務上有讀一致性需求可以封裝到事務中。
- 使用讀寫分離的連接地址時, LAST_INSERT_ID() 函數僅支持在事務中使用。
- 使用讀寫分離的連接地址時,show processlist命令的執行結果不具有一致性。
- 使用讀寫分離的連接地址時,不支持使用show errors和show warnings命令。
- 使用讀寫分離的連接地址時,不支持用戶自定義變量,如SET @variable語句。
- 使用讀寫分離的連接地址時,如果存儲過程(procedure)和函數(function)中依賴了用戶變量,即@variable,則運行結果可能不正確。