首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MySQL 5.1 複寫模式全解析:SBR、RBR、MBR 三種格式優缺點與動態切換

     編輯:關於SqlServer

MySQL 5.1 引入基於列的複寫 (RBR),新增三種模式:

  • SBR:陳述式複寫,舊版預設。
  • RBR:列複寫,記錄實際資料變更。
  • MBR:混合模式,預設 SBR,特定情況自動切換 RBR。

動態變更 binlog 格式

SET SESSION binlog_format = 'ROW';
SET GLOBAL binlog_format = 'MIXED';

限制:預存程序/觸發器中、啟用 NDB、RBR 會話開啟臨時表時不可動態變更。

MBR 自動切換 RBR 的情況

  • DML 更新 NDB 表
  • 函數含 UUID()
  • 兩個以上 AUTO_INCREMENT 表同時更新
  • INSERT DELAYED
  • 使用 UDF
  • 視圖定義需 RBR(如含 UUID())

SBR vs RBR 優缺點對照

面向SBR 優點SBR 缺點
成熟度歷史悠久、技術成熟含不確定函數(UUID、USER、SYSDATE)無法正確複寫
Binlog 大小檔案較小複雜語句從庫耗資源大
審計含所有變更資訊需全表掃描的 UPDATE 鎖較多
面向RBR 優點RBR 缺點
正確性任何情況皆可複寫,最安全Binlog 大幅增大
效能主鍵表複寫快、列鎖少、支援多執行緒大量回滾產生大量 Binlog、UDF 大 BLOB 變慢
可視性—Binlog 加密不可讀、非交易表易導致主從不一致

系統庫 mysql 特殊規則

GRANT/REVOKE/SET PASSWORD 強制用 SBR 記錄;一般 DML 依 binlog_format 設定。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved