今天網友"芬達"跟我討論一個參數binlog_row_image,在什麼場景下設置爲MINIMAL,我以爲這個案例頗有意義,尤爲是在生產環境中,要慎重設置這個參數。mysql
首先這個MINIMAL,只會在binlog裏記錄被影響的行,而不能像默認的FULL同樣,記錄完整的變動前和變動後的全部記錄,這裏就會產生一個問題,數據被誤更改,沒法用mysqlbinlog等工具閃回,另外大數據那邊用canal抽binlog,會形成數據不許確等一系列問題。sql
下面經過模擬實驗,看看binlog裏記錄的內容。安全
表結構以下:
ide
裏面的數據:
工具
此時,執行一條update變動操做:大數據
立刻看下binlog裏面記錄的內容:3d
注意看紅色框部分的內容,變動前的完整原始數據並無被記錄,固沒法閃回。
orm
雖然MINIMAL能夠減小binlog的文件大小(binlog_format = ROW),下降磁盤IO,但從數據安全角度來看,這將是危險的!blog
這裏感謝網友"芬達"提供素材。it