久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

實例驗證MySQL|update字段為相同的值是否會記錄binlog

瀏覽:15日期:2023-10-10 10:20:23

一 前言

前幾天一個開發同事咨詢我,update 更新字段為相同的值是否會記錄binlog,我回復說不會。

其實 嚴格的說這個答案是不準確的,說要區分場景。是否記錄 update 語句到binlog依賴于 binlog_format 的設置。具體情況 實踐出真知。

二 測試

2.1 binlog_format 為 ROW 模式

實例驗證MySQL|update字段為相同的值是否會記錄binlog

2.2 binlog_format 為 STATEMENT 模式

實例驗證MySQL|update字段為相同的值是否會記錄binlog

解析binlog內容,完整的記錄了update語句。

實例驗證MySQL|update字段為相同的值是否會記錄binlog

2.2 binlog_format 為 MIXED 模式

實例驗證MySQL|update字段為相同的值是否會記錄binlog

當 row_format 為mixed或者statement格式是,binlog 的大小發生改變,不管是否真的更新數據,MySQL都記錄執行的sql 到binlog。

三 小結

基于row模式時,server層匹配到要更新的記錄,發現新值和舊值一致,不做更新,就直接返回,也不記錄binlog。

基于 statement 或者 mixed格式,MySQL執行 update 語句,并把更新語句記錄到binlog。

那為什么問題來了 statement 和 mixed 會完整的記錄sql語句呢?且聽下回分解吧,因為我要解析源碼,使用Clion 編譯MySQL 調試環境還沒成功。

以上就是實例驗證MySQL|update字段為相同的值是否會記錄binlog的詳細內容,更多關于MySQL update字段的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 治县。| 乌恰县| 山阳县| 高邑县| 景德镇市| 新巴尔虎右旗| 朝阳区| 老河口市| 香港| 广安市| 专栏| 澳门| 灵台县| 张家川| 盐城市| 淮滨县| 平舆县| 丹凤县| 从化市| 凭祥市| 响水县| 广饶县| 依兰县| 巴马| 绍兴市| 唐山市| 长寿区| 巴林左旗| 锡林郭勒盟| 罗山县| 昌乐县| 夏邑县| 白山市| 洪江市| 石门县| 子洲县| 陆川县| 丰台区| 文昌市| 南丰县| 孟村|