一、背景
本文主要測(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ù)都讀出來(lái),那么重復(fù)數(shù)據(jù)的update不會(huì)執(zhí)行。即MySQL 調(diào)用了 InnoDB 引擎提供的“修改為 (1,55)”這個(gè)接口,但是引擎發(fā)現(xiàn)值與原來(lái)相同,不更新,直接返回。
四、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è)操作,該加鎖的加鎖,該更新的更新。
-
編程
+關(guān)注
關(guān)注
90文章
3712瀏覽量
96983 -
代碼
+關(guān)注
關(guān)注
30文章
4956瀏覽量
73511 -
MySQL
+關(guān)注
關(guān)注
1文章
900瀏覽量
29343
原文標(biāo)題:MySQL 中 update 修改數(shù)據(jù)與原數(shù)據(jù)相同會(huì)再次執(zhí)行嗎?
文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
MYSQL8數(shù)據(jù)庫(kù)核心基礎(chǔ)16-Mysql-修改數(shù)據(jù)庫(kù)密碼
請(qǐng)問(wèn)如何將前面板的數(shù)據(jù)鎖定 讓用戶無(wú)法修改數(shù)據(jù)值 謝謝!
修改數(shù)據(jù)庫(kù)數(shù)據(jù)
TDMS文件修改數(shù)據(jù)
【EVB-335X-II試用體驗(yàn)】之QT遠(yuǎn)程訪問(wèn)MySql數(shù)據(jù)庫(kù)(交叉編譯MySql QT客戶端驅(qū)動(dòng)程序及功能測(cè)試)
《Visual C# 2008程序設(shè)計(jì)經(jīng)典案例設(shè)計(jì)與實(shí)現(xiàn)》---動(dòng)態(tài)修改數(shù)據(jù)庫(kù)數(shù)據(jù)信息
如何在labview去修改數(shù)據(jù)庫(kù)中的table名
springboo修改數(shù)據(jù)源為Druid
JAVA教程之修改數(shù)據(jù)庫(kù)
如何使用Labwindow CVI軟件平臺(tái)進(jìn)行Mysql數(shù)據(jù)庫(kù)開(kāi)發(fā)
select語(yǔ)句和update語(yǔ)句分別是怎么執(zhí)行的
MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會(huì)再次執(zhí)行
評(píng)論