主页 > 知识库 > 实例验证MySQL|update字段为相同的值是否会记录binlog

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

热门标签:百度竞价排名 AI电销 服务外包 铁路电话系统 网站排名优化 Linux服务器 地方门户网站 呼叫中心市场需求

一 前言

前几天一个开发同事咨询我,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|update字段为相同的值是否会记录binlog》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266