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

 更新时间:2020年10月27日 11:57:30   作者:用户1278550  
这篇文章主要介绍了实例验证MySQL|update字段为相同的值是否会记录binlog,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下

一 前言

前几天一个开发同事咨询我,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字段的资料请关注脚本之家其它相关文章!

相关文章

  • 使用FriendFeed来提升MySQL性能的方法

    使用FriendFeed来提升MySQL性能的方法

    这篇文章主要介绍了使用FriendFeed来提升MySQL性能的方法,用其来存储无模式的数据从而能够维护索引,需要的朋友可以参考下
    2015-06-06
  • 关于MySql链接url参数的设置

    关于MySql链接url参数的设置

    最近整理了一下网上关于MySql 链接url 参数的设置以及常用的几个较为重要的参数,大家若感兴趣可以参考下
    2014-03-03
  • 远程登录MySQL服务(小白入门篇)

    远程登录MySQL服务(小白入门篇)

    这篇文章主要为大家介绍了远程登录MySQL服务(小白入门篇)
    2023-05-05
  • MySQL DELETE速度提高的几种方法

    MySQL DELETE速度提高的几种方法

    提高MySQL中DELETE操作的速度通常涉及多个方面,包括优化查询、索引、表结构、硬件和配置等,本文主要介绍了MySQL DELETE速度提高的几种方法,感兴趣的可以了解一下
    2024-07-07
  • mysql免安装没有任何root权限

    mysql免安装没有任何root权限

    这篇文章主要介绍了mysql免安装没有任何root权限的安装与配置教程,本文图文并茂给大家介绍的非常详细,需要的朋友参考下
    2017-01-01
  • MySQL中的REPLACE INTO语法详解

    MySQL中的REPLACE INTO语法详解

    REPLACEINTO是MySQL中的一种特殊语句,用于在插入数据时检测是否存在冲突,如果目标表中已存在与新插入行的主键(PRIMARYKEY)或唯一键(UNIQUEKEY)冲突的记录,则会删除旧记录并插入新记录
    2025-02-02
  • mysql全量备份、增量备份实现方法

    mysql全量备份、增量备份实现方法

    这篇文章主要介绍了mysql全量备份、增量备份实现方法,需要的朋友可以参考下
    2016-12-12
  • MySql 空间索引的实现

    MySql 空间索引的实现

    MySQL空间索引是一种用于优化地理空间数据查询的数据结构,通过为几何数据类型创建空间索引,可以高效地对空间数据进行查询和操作,感兴趣的可以了解一下
    2024-11-11
  • 详解用SELECT命令在MySQL执行查询操作的教程

    详解用SELECT命令在MySQL执行查询操作的教程

    这篇文章主要介绍了详解用SELECT命令在MySQL执行查询操作的教程,本文中还给出了基于PHP脚本的操作演示,需要的朋友可以参考下
    2015-05-05
  • 详解使用navicat连接远程linux mysql数据库出现10061未知故障

    详解使用navicat连接远程linux mysql数据库出现10061未知故障

    这篇文章主要介绍了navicat连接远程linux mysql数据库出现10061未知故障,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论