• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    实例验证MySQL|update字段为相同的值是否会记录binlog

    一 前言

    前几天一个开发同事咨询我,update 更新字段为相同的值是否会记录binlog,我回复说不会。

    其实 严格的说这个答案是不准确的,说要区分场景。是否记录 update 语句到binlog依赖于 binlog_format 的设置。具体情况 实践出真知。

    二 测试

    2.1  binlog_format 为 ROW 模式

    2.2  binlog_format 为 STATEMENT 模式

    解析binlog内容,完整的记录了update语句。

    2.2  binlog_format 为 MIXED 模式

    当 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 从一张表update字段到另外一张表中
    • MySQL 替换某字段内部分内容的UPDATE语句
    • 关于Mysql update修改多个字段and的语法问题详析
    上一篇:mysql 8.0.22 安装配置方法图文教程
    下一篇:详解MySQL 8.0 之不可见索引
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    实例验证MySQL|update字段为相同的值是否会记录binlog 实例,验证,MySQL,update,字段,