一、背景
本文主要測試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)“這個操作,該加鎖的加鎖,該更新的更新。
-
編程
+關注
關注
88文章
3637瀏覽量
93987 -
代碼
+關注
關注
30文章
4828瀏覽量
69055 -
MySQL
+關注
關注
1文章
829瀏覽量
26743
原文標題:MySQL 中 update 修改數據與原數據相同會再次執行嗎?
文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論