今天网友"芬达"跟我讨论一个参数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