作者:powdba来源:阿里云栖社区
一、背景本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗?
二、测试环境MySQL5.7.25
Centos7.4
三、binlog_format为ROW1、参数
2、测试步骤session1
session2
session1
3、总结在binlog_format=row
和binlog_row_image=FULL时,
由于MySQL需要在binlog里面记录所有的字段,所以在读数据的时候就会把所有数据都读出来,那么重复数据的update不会执行。即MySQL调用了InnoDB引擎提供的“修改为(1,55)”这个接口,但是引擎发现值与原来相同,不更新,直接返回。
四、binlog_format为STATEMENT1、参数
2、测试步骤session1
session2
session1
3、总结在binlog_format=statement
和binlog_row_image=FULL时,
InnoDB内部认真执行了update语句,即“把这个值修改成(1,)“这个操作,该加锁的加锁,该更新的更新。
程序汪往期精彩文章包含答案
程序汪最近整理的BAT大小厂面试题(面试题目录推荐)
目录:我把精华文章都整理出来了
年换工作面试总结
年程序汪回复程序员小白11问,祝大家都能高薪
讲述:一个月薪的北京程序员的真实生活
SQL语句大全,所有的SQL都在这里
天真!这简历一看就是包装过的
终于见识到的架构到底有多“牛逼”?
程序汪的总结,认识了很多朋友赚了些小钱,现在分享出来
给个[在看],是对程序汪最大的支持预览时标签不可点收录于合集#个上一篇下一篇