MySQL 5.1 引入基於列的複寫 (RBR),新增三種模式:
SET SESSION binlog_format = 'ROW';
SET GLOBAL binlog_format = 'MIXED';
限制:預存程序/觸發器中、啟用 NDB、RBR 會話開啟臨時表時不可動態變更。
UUID()AUTO_INCREMENT 表同時更新INSERT DELAYEDUUID())| 面向 | SBR 優點 | SBR 缺點 |
|---|---|---|
| 成熟度 | 歷史悠久、技術成熟 | 含不確定函數(UUID、USER、SYSDATE)無法正確複寫 |
| Binlog 大小 | 檔案較小 | 複雜語句從庫耗資源大 |
| 審計 | 含所有變更資訊 | 需全表掃描的 UPDATE 鎖較多 |
| 面向 | RBR 優點 | RBR 缺點 |
|---|---|---|
| 正確性 | 任何情況皆可複寫,最安全 | Binlog 大幅增大 |
| 效能 | 主鍵表複寫快、列鎖少、支援多執行緒 | 大量回滾產生大量 Binlog、UDF 大 BLOB 變慢 |
| 可視性 | — | Binlog 加密不可讀、非交易表易導致主從不一致 |
GRANT/REVOKE/SET PASSWORD 強制用 SBR 記錄;一般 DML 依 binlog_format 設定。