数据库:MySQL中,当update修改数据与原数据相同时会再次执行吗?
生活随笔
收集整理的这篇文章主要介绍了
数据库:MySQL中,当update修改数据与原数据相同时会再次执行吗?
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
来自:powdba | 责编:乐乐
链接:yq.aliyun.com/articles/694162
一、背景
本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗?
二、测试环境
MySQL5.7.25
Centos 7.4
三、binlog_format为ROW
1、参数
2、测试步骤
session1
session2
session1
3、总结
在binlog_format=row和binlog_row_image=FULL时,由于MySQL 需要在 binlog 里面记录所有的字段,所以在读数据的时候就会把所有数据都读出来,那么重复数据的update不会执行。
即MySQL 调用了 InnoDB 引擎提供的“修改为 (1,55)”这个接口,但是引擎发现值与原来相同,不更新,直接返回。
四、binlog_format为STATEMENT
1、参数
2、测试步骤
session1
session2
session1
3、总结
在binlog_format=statement和binlog_row_image=FULL时,InnoDB内部认真执行了update语句,即“把这个值修改成 (1,999)“这个操作,该加锁的加锁,该更新的更新。
IT技术分享社区
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识
总结
以上是生活随笔为你收集整理的数据库:MySQL中,当update修改数据与原数据相同时会再次执行吗?的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 2018 总结 2019 展望
- 下一篇: MYSQL:如何正确高效的使用 MySQ