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更新。
