mysql update返回_MySQL中,当update修改数据与原数据相同时会再次执行吗?
生活随笔
收集整理的這篇文章主要介紹了
mysql update返回_MySQL中,当update修改数据与原数据相同时会再次执行吗?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文同步Java知音社區(qū),專注于Java
作者:powdbahttps://yq.aliyun.com/articles/694162一、背景
本文主要測(cè)試MySQL執(zhí)行update語(yǔ)句時(shí),針對(duì)與原數(shù)據(jù)(即未修改)相同的update語(yǔ)句會(huì)在MySQL內(nèi)部重新執(zhí)行嗎?
二、測(cè)試環(huán)境
MySQL5.7.25
Centos 7.4
三、binlog_format為ROW
1、參數(shù)
2、測(cè)試步驟
session1
session2
session1
3、總結(jié)
在binlog_format=row和binlog_row_image=FULL時(shí),由于MySQL 需要在 binlog 里面記錄所有的字段,所以在讀數(shù)據(jù)的時(shí)候就會(huì)把所有數(shù)據(jù)都讀出來,那么重復(fù)數(shù)據(jù)的update不會(huì)執(zhí)行。即MySQL 調(diào)用了 InnoDB 引擎提供的“修改為 (1,55)”這個(gè)接口,但是引擎發(fā)現(xiàn)值與原來相同,不更新,直接返回。
四、binlog_format為STATEMENT
1、參數(shù)
2、測(cè)試步驟
session1
session2
session1
3、總結(jié)
在binlog_format=statement和binlog_row_image=FULL時(shí),InnoDB內(nèi)部認(rèn)真執(zhí)行了update語(yǔ)句,即“把這個(gè)值修改成 (1,999)“這個(gè)操作,該加鎖的加鎖,該更新的更新。
總結(jié)
以上是生活随笔為你收集整理的mysql update返回_MySQL中,当update修改数据与原数据相同时会再次执行吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OPPO Pad Air2正式开售 普及
- 下一篇: mysql数据库设计三大范式_了解数据库