0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

電子工程師 ? 來源:fqj ? 2019-05-06 10:45 ? 次閱讀

一、背景

本文主要測試MySQL執(zhí)行update語句時,針對與原數(shù)據(jù)(即未修改)相同的update語句會在MySQL內(nèi)部重新執(zhí)行嗎?

二、測試環(huán)境

MySQL5.7.25

Centos 7.4

三、binlog_format為ROW

1、參數(shù)

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

2、測試步驟

session1

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

session2

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

session1

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

3、總結

在binlog_format=row和binlog_row_image=FULL時,由于MySQL 需要在 binlog 里面記錄所有的字段,所以在讀數(shù)據(jù)的時候就會把所有數(shù)據(jù)都讀出來,那么重復數(shù)據(jù)的update不會執(zhí)行。即MySQL 調(diào)用了 InnoDB 引擎提供的“修改為 (1,55)”這個接口,但是引擎發(fā)現(xiàn)值與原來相同,不更新,直接返回。

四、binlog_format為STATEMENT

1、參數(shù)

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

2、測試步驟

session1

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

session2

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

session1

MySQL中update修改數(shù)據(jù)與原數(shù)據(jù)相同是否會再次執(zhí)行

3、總結

在binlog_format=statement和binlog_row_image=FULL時,InnoDB內(nèi)部認真執(zhí)行了update語句,即“把這個值修改成 (1,999)“這個操作,該加鎖的加鎖,該更新的更新。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3544

    瀏覽量

    93482
  • 代碼
    +關注

    關注

    30

    文章

    4697

    瀏覽量

    68093
  • MySQL
    +關注

    關注

    1

    文章

    794

    瀏覽量

    26354

原文標題:MySQL 中 update 修改數(shù)據(jù)與原數(shù)據(jù)相同會再次執(zhí)行嗎?

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MYSQL8數(shù)據(jù)庫核心基礎16-Mysql-修改數(shù)據(jù)庫密碼

    MySQLMYSQL數(shù)據(jù)
    電子學習
    發(fā)布于 :2023年01月16日 15:29:58

    labview 修改數(shù)數(shù)據(jù)

    如何修改數(shù)組高亮行的列數(shù)據(jù)?非常感謝!
    發(fā)表于 05-07 18:44

    請問如何將前面板的數(shù)據(jù)鎖定 讓用戶無法修改數(shù)據(jù)值 謝謝!

    現(xiàn)需要將前面板所有參數(shù)數(shù)據(jù)鎖定 讓用戶無法修改數(shù)據(jù)值 只能通過程序讀取保存在文檔數(shù)據(jù)。 請問大神 怎樣才能簡單方便的實現(xiàn)呢?
    發(fā)表于 04-10 22:28

    修改數(shù)據(jù)數(shù)據(jù)

    剛學labview,想問一下怎么在前面板添加一個選項,可以顯示并更改數(shù)據(jù)數(shù)據(jù)。最好有程序圖,謝謝。
    發(fā)表于 09-15 10:23

    TDMS文件修改數(shù)據(jù)

    各位大神,有誰知道TDMS格式文件怎么修改里面的數(shù)據(jù)后還能保存為TDMS格式?。课矣胑xcel可以修改,但是修改完后無法再次保存為TDMS格
    發(fā)表于 03-21 23:15

    【EVB-335X-II試用體驗】之QT遠程訪問MySql數(shù)據(jù)庫(交叉編譯MySql QT客戶端驅動程序及功能測試)

    部分。該文件中共有4處。千萬別缺,否則編譯會出錯了,找到4處相同的.修改后保存退出。 主要上述代碼的echo是我們自己加上去的,必須有,否則編譯報錯。3) 配置MySql
    發(fā)表于 07-04 00:28

    《Visual C# 2008程序設計經(jīng)典案例設計與實現(xiàn)》---動態(tài)修改數(shù)據(jù)數(shù)據(jù)信息

    《Visual C# 2008程序設計經(jīng)典案例設計與實現(xiàn)》---動態(tài)修改數(shù)據(jù)數(shù)據(jù)信息.zip
    發(fā)表于 06-25 16:32

    如何在labview去修改數(shù)據(jù)的table名

    如何基于labview的Database去修改數(shù)據(jù)的table名。其他方法也可以
    發(fā)表于 03-07 16:10

    springboo修改數(shù)據(jù)源為Druid

    springboo修改數(shù)據(jù)源Druid整合mybatis 使用Mybatis-Generator插件生成代碼和分頁插件
    發(fā)表于 05-05 14:45

    binlog有什么意義/工作模式/優(yōu)缺點

    記錄的修改來記錄,產(chǎn)生大量的日志內(nèi)容  statement模式:  每一條修改數(shù)據(jù)的SQL都會記錄master的bin-log,slave在復制的時候SQL進程
    發(fā)表于 01-29 17:24

    JAVA教程之修改數(shù)據(jù)

    JAVA教程之修改數(shù)據(jù)庫,很好的JAVA的資料,快來學習吧。
    發(fā)表于 04-12 17:55 ?7次下載

    如何使用Labwindow CVI軟件平臺進行Mysql數(shù)據(jù)庫開發(fā)

    本文檔的主要內(nèi)容詳細介紹的是如何使用Labwindow CVI軟件平臺進行Mysql數(shù)據(jù)庫開發(fā)。 針對初學者進行數(shù)據(jù)庫開發(fā), 不是很了解相應過程, 現(xiàn)將我剛剛成功的驗證過程, 與大家分享。文中主要描述不能使用映射方式
    發(fā)表于 07-09 16:49 ?22次下載

    select語句和update語句分別是怎么執(zhí)行

    一樣,但是具體的實現(xiàn)還是有區(qū)別的。 當然深入了解select和update的具體區(qū)別并不是只為了面試,當希望Mysql能夠高效的執(zhí)行的時候,最好的辦法就是清楚的了解Mysql是如何
    的頭像 發(fā)表于 11-03 09:41 ?3488次閱讀
    select語句和<b class='flag-5'>update</b>語句分別是怎么<b class='flag-5'>執(zhí)行</b>的

    是否MySQL數(shù)據(jù)的事務已經(jīng)有所了解呢?

    是否MySQL 數(shù)據(jù)的事務已經(jīng)有所了解?看下面這張圖,按照 1~6 的順序依次執(zhí)行,在RR隔離級別下,事務 A 和事務 B 各自輸
    的頭像 發(fā)表于 02-21 17:20 ?594次閱讀

    weblogic修改數(shù)據(jù)源需要重啟嗎

    WebLogic是一款支持Java EE(Java Enterprise Edition)規(guī)范的應用服務器,通過WebLogic可進行數(shù)據(jù)源的配置和管理。在WebLogic修改數(shù)據(jù)是否
    的頭像 發(fā)表于 12-05 16:09 ?1186次閱讀