實(shí)例驗(yàn)證MySQL|update字段為相同的值是否會(huì)記錄binlog
一 前言
前幾天一個(gè)開發(fā)同事咨詢我,update 更新字段為相同的值是否會(huì)記錄binlog,我回復(fù)說(shuō)不會(huì)。
其實(shí) 嚴(yán)格的說(shuō)這個(gè)答案是不準(zhǔn)確的,說(shuō)要區(qū)分場(chǎng)景。是否記錄 update 語(yǔ)句到binlog依賴于 binlog_format 的設(shè)置。具體情況 實(shí)踐出真知。
二 測(cè)試
2.1 binlog_format 為 ROW 模式

2.2 binlog_format 為 STATEMENT 模式

解析binlog內(nèi)容,完整的記錄了update語(yǔ)句。

2.2 binlog_format 為 MIXED 模式

當(dāng) row_format 為mixed或者statement格式是,binlog 的大小發(fā)生改變,不管是否真的更新數(shù)據(jù),MySQL都記錄執(zhí)行的sql 到binlog。
三 小結(jié)
基于row模式時(shí),server層匹配到要更新的記錄,發(fā)現(xiàn)新值和舊值一致,不做更新,就直接返回,也不記錄binlog。
基于 statement 或者 mixed格式,MySQL執(zhí)行 update 語(yǔ)句,并把更新語(yǔ)句記錄到binlog。
那為什么問題來(lái)了 statement 和 mixed 會(huì)完整的記錄sql語(yǔ)句呢?且聽下回分解吧,因?yàn)槲乙馕鲈创a,使用Clion 編譯MySQL 調(diào)試環(huán)境還沒成功。
以上就是實(shí)例驗(yàn)證MySQL|update字段為相同的值是否會(huì)記錄binlog的詳細(xì)內(nèi)容,更多關(guān)于MySQL update字段的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用FriendFeed來(lái)提升MySQL性能的方法
這篇文章主要介紹了使用FriendFeed來(lái)提升MySQL性能的方法,用其來(lái)存儲(chǔ)無(wú)模式的數(shù)據(jù)從而能夠維護(hù)索引,需要的朋友可以參考下2015-06-06
關(guān)于MySql鏈接url參數(shù)的設(shè)置
最近整理了一下網(wǎng)上關(guān)于MySql 鏈接url 參數(shù)的設(shè)置以及常用的幾個(gè)較為重要的參數(shù),大家若感興趣可以參考下2014-03-03
詳解用SELECT命令在MySQL執(zhí)行查詢操作的教程
這篇文章主要介紹了詳解用SELECT命令在MySQL執(zhí)行查詢操作的教程,本文中還給出了基于PHP腳本的操作演示,需要的朋友可以參考下2015-05-05
詳解使用navicat連接遠(yuǎn)程linux mysql數(shù)據(jù)庫(kù)出現(xiàn)10061未知故障
這篇文章主要介紹了navicat連接遠(yuǎn)程linux mysql數(shù)據(jù)庫(kù)出現(xiàn)10061未知故障,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

