MySQL二進位制日誌的三種格式優缺點比較

chenfeng發表於2018-05-22
Statement格式:
記錄的是邏輯SQL,就是原始SQL語句
優點是日誌量小
缺點是執行一些不確定的函式(如uuid(),now())會出現主從資料不一致問題


Row格式: 記錄的不再是簡單的SQL語句,而是記錄了表的行更改的情況 
優點是解決了statement格式下主從資料不一致的問題,所有資料都可以安全地複製,缺點是日誌量大,影響從庫日誌的複製時間,但可以透過設定引數binlog_row_image=MINIMAL來減少日誌的生成量。


Mixed格式=statement+row: mysql預設採用statement格式進行二進位制日誌檔案的記錄,但是在一些情況下會使用row格式,可能使用row格式的情況有: 
1)表的儲存引擎為NDB,這時對錶的DML操作都會以row格式記錄 
2)使用了uuid(),user(),current_user(),found_rows(),row_count()等不確定函式 
3)使用了insert delay語句 
4)使用了使用者自定義函式UDF 
5)使用了臨時表

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2154901/,如需轉載,請註明出處,否則將追究法律責任。

相關文章