MySQL Binlog与数据变更

时间:2023-01-04 21:02:57

如果对满足WHERE条件数据执行UPDATE,而UPDATE未导致前后数据发生变化,这种情况下会产生二进制日志么?

=========================================================================================

ROW格式下测试:

##修改日志格式
SET SESSION binlog_format='ROW'; ##查看数据
SELECT * FROM t3 WHERE i1=1;
+----+------+------+------------------+
| i1 | i2 | f | t |
+----+------+------+------------------+
| 1 | 1 | 1 | New Hello World1 |
+----+------+------+------------------+ ##更新数据
UPDATE t3 SET f=1 WHERE i1=1;
##Query OK, 0 rows affected (0.01 sec)
##Rows matched: 1 Changed: 0 Warnings: 0

使用mysqlbinlog查看日志,会发现没有对应上面update的二进制日志生成。

=========================================================================================

STATEMENT格式下进行测试:

##修改日志格式
SET SESSION binlog_format='STATEMENT'; ##更新数据
UPDATE t3 SET f=1 WHERE i1=1;
##Query OK, 0 rows affected (0.01 sec)
##Rows matched: 1 Changed: 0 Warnings: 0

查看二进制日志,会发现有以下信息:

MySQL Binlog与数据变更

=========================================================================================

总结:

对于未导致数据发生变化的UPDATE操作:

1、ROW格式下无行记录辩护因此不会记录到二进制日志中

2、STATEMENT格式下UPDATE语句会被记录到二进制日志中

3、MIX格式下,上面的UPDATE被当做STATEMENT格式处理

PS1: 修改回话参数的操作不会被记录到二进制文件中。

=========================================================================================

MySQL Binlog与数据变更的更多相关文章

  1. canal+kafka订阅Mysql binlog将数据异构到elasticsearch(或其他存储方式)

    canal本质就是"冒充"从库,通过订阅mysql bin-log来获取数据库的更改信息. mysql配置(my.cnf) mysql需要配置my.cnf开启bin-log日志并且 ...

  2. Mysql binlog备份数据及恢复数据,学会这个,我在也不怕删库跑路啦~

    导读 我一直都主张,技多不压身(没有学不会的技术,只有不学习的人),多学一项技能,未来就少求人一次.网上经常听到xxx删库跑路,万一真的遇到了,相信通过今天的学习,也能将数据再恢复回来~~~ 当然啦, ...

  3. mysql binlog恢复数据实战

    在前面,我们了解了mysql binlog日志的作用以及使用方法:  http://www.php20.cn/article/237 在后面讲到了,可以通过binlog进行恢复数据,那么,具体步骤是怎 ...

  4. MySql binlog恢复数据

    1. 直接导入数据库 mysqlbinlog --database=testdb mysql-bin. | mysql -uroot -f 2. 导出成SQL文 (1) 从binlog输出为SQL m ...

  5. mysql数据库的数据变更事件获取以及相关数据

    https://medium.com/@Masutangu/udf-trigger%E5%AE%9E%E6%97%B6%E7%9B%91%E6%8E%A7mysql%E6%95%B0%E6%8D%AE ...

  6. Canal - 数据同步 - 阿里巴巴 MySQL binlog 增量订阅&消费组件

    背景 早期,阿里巴巴 B2B 公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求 ,主要是基于trigger的方式获取增量变更.从 2010 年开始,公司开始逐步尝试数据库日志解析,获取增量变 ...

  7. Mysql Binlog 三种格式介绍及分析

    一.Mysql Binlog格式介绍       Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...

  8. canal+mysql+kafka实时数据同步安装、配置

    canal+mysql+kafka安装配置 概述 简介 canal译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费. 基于日志增量订阅和消费的业务包括 数 ...

  9. 基于 MySQL Binlog 的 Elasticsearch 数据同步实践 原

    一.背景 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品.订单等数据的多维度检索. 使用 Elasticsearch 存储业务数据可以 ...

随机推荐

  1. Python使用中文注释和输出中文(原创)

    刚开始学习python,需要在Python中注释中文和输出中文,现在开始尝试: 仅为初步学习参考,高手请绕行. -------------------------------------------- ...

  2. js通过alert查看对象或数组内容

    var arr=new Array("Saab","Volvo","BMW"); for(i in arr ){ alert(i); //获 ...

  3. db2权限控制(转)

    转自:http://gocom.primeton.com/blog16274_23254.htm db2权限控制 1. DB2 权限控制数据库安全性计划的以下几方面: 授予用户的权限级别 允许用户运行 ...

  4. document.location的属性

    示例html完整路径为: http://10.10.3.117:8500/html/ypt/index.html alert("document.location.href:"+d ...

  5. (转)CentOS 6.5下Redis安装详细步骤

    Redis简介:Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作 ...

  6. Java学习笔记——排序算法之希尔排序(Shell Sort)

    落日楼头,断鸿声里,江南游子.把吴钩看了,栏杆拍遍,无人会,登临意. --水龙吟·登建康赏心亭 希尔算法是希尔(D.L.Shell)于1959年提出的一种排序算法.是第一个时间复杂度突破O(n²)的算 ...

  7. 连接SQL SERVER数据库实例出错

    问题背景: 刚买的新电脑,昨天让公司IT部装了win10专业版系统,想体验一下.装完后一切正常,晚上带回家装自己需要的软件和系统更新,结果今天来公司发现数据库实例连不上了,拿到IT部,他们也没有找到原 ...

  8. Count:858org.apache.jasper.JasperException: Unable to compile class for JSP

    1.错误描述 Count:858org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurre ...

  9. Java 内部类示例

    在下面的示例中,创建了一个数组,使用升序的整数初始化它,并打印索引为偶数的数组值. public class DataStructure { // 创建一个数组 private final stati ...

  10. js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结

    写前端的时候,很多的时候是避免不了注册这一关的,但是一般的注册是没有任何的难度的,无非就是一些简单的获取用户输入的数据,然后进行简单的校验以后调用接口,将数据发送到后端,完成一个简单的注册的流程,那么 ...