1.背景本文主要测试当MySQL执行update语句时,MySQL内部是否会重新执行与原始数据相同(即未修改)的update语句?2、测试环境为MySQL5.7.25Centos7.43、binlog_format为ROW1,参数2,测试步骤session1session2session13,summary当binlog_format=row,binlog_row_image=FULL时,由于MySQL需要记录binlog中的所有字段,所以会读取读取数据时的所有数据,所以重复数据的更新不会执行。即MySQL调用了InnoDB引擎提供的“修改为(1,55)”接口,但引擎发现该值与原值相同,没有更新直接返回。4、binlog_format为STATEMENT1,参数2,测试步骤session1session2session13。当binlog_format=statement和binlog_row_image=FULL时,InnoDB小心的执行update语句,即“把这个值改成(1,999)”这个操作应该是lockedLocked,update更新。
