当前位置: 首页 > news >正文

西安seo网站管理网站名称与域名

西安seo网站管理,网站名称与域名,感谢使用wordpress进行创作,建设网上银行官方网站【Binlog实战】:基于Spring监听Binlog日志 binlog的三种模式 MySQL 的二进制日志(binlog)有三种不同的格式,通常被称为 binlog 模式。这三种模式分别是 Statement 模式、Row 模式和Mixed 模式。 Statement 模式: 在 …

【Binlog实战】:基于Spring监听Binlog日志

binlog的三种模式

  • MySQL 的二进制日志(binlog)有三种不同的格式,通常被称为 binlog 模式。这三种模式分别是 Statement 模式、Row 模式和Mixed 模式。

  • Statement 模式:

    • 在 Statement 模式下,MySQL 记录每个会更改数据的 SQL 语句。
    • binlog 记录的是执行的 SQL 语句本身,而不是具体的数据变化。
    • 例如,如果执行了 UPDATE 语句,binlog 记录的是这个 UPDATE 语句的文本。
  • Row 模式:

    • 在 Row 模式下,MySQL 记录每一行数据的变化。
    • binlog 记录的是行数据的变化,而不是 SQL 语句。
    • 例如,如果执行了 UPDATE 语句,binlog 记录的是被修改的行的实际数据。
  • Mixed 模式:

    • Mixed 模式是 Statement 模式和 Row 模式的结合。
    • 在 Mixed 模式下,MySQL 根据执行的 SQL 语句的类型来决定是记录语句还是记录行。
    • 通常,对于简单的语句,使用 Statement 模式,对于涉及到行变化的复杂语句,使用 Row 模式。
  • 这些模式可以通过 MySQL 配置文件中的 binlog_format 参数进行配置。例如:

  • [mysqld]
    binlog_format=mixed
    
  • 其中,statementrowmixed 分别代表 Statement 模式、Row 模式和 Mixed 模式。选择适当的 binlog 模式取决于应用的特定需求和性能要求。不同的模式具有不同的优劣势,例如,Statement 模式可能会更轻量,而 Row 模式可能提供更详细的数据变化信息。

以Mixed 为例

  • 查看binlog是否开启

  • show variables like '%log_bin%'
    
  • 在这里插入图片描述

  • 启动springboot程序

  • 在这里插入图片描述

  • 新建数据库

  • 在这里插入图片描述

  • 这个事件是一个 binlog 事件,其内容表示一个 SQL 查询事件。让我解释一下这个事件的各个部分:

    • 事件类型 (***eventType***): 该事件的类型是 QUERY,表示这是一个 SQL 查询事件。
    • 时间戳 (***timestamp***): 事件的时间戳为 1700045267000,表示事件发生的时间。
    • 线程ID (***threadId***): 线程ID 是 189,表示执行这个查询的线程的标识符。
    • 执行时间 (***executionTime***): 执行时间为 0,表示执行这个查询所花费的时间。
    • 错误代码 (***errorCode***): 错误代码为 0,表示查询执行没有错误。
    • 数据库 (***database***): 数据库为 test2023,表示这个查询发生在 test2023 数据库中。
    • SQL 查询 (***sql***): 实际的 SQL 查询为 CREATE DATABASE test2023 CHARACTER SET utf8 COLLATE utf8_general_ci,表示执行了创建数据库的操作。
    • 这个事件的作用是在 test2023 数据库中执行了一个创建数据库的 SQL 查询。这是 binlog 中的一部分,用于记录数据库中的变化,以便进行数据备份、主从同步等操作。
    • 在这里插入图片描述
  • 新建表数据

  • CREATE TABLE `t_user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`userName` varchar(100) NOT NULL,PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4;
    
  • 在这里插入图片描述

  • 这个事件也是一个 binlog 事件,表示一个 SQL 查询事件。让我解释一下这个事件的各个部分:

    • 事件类型 (***eventType***): 该事件的类型是 QUERY,表示这是一个 SQL 查询事件。
    • 时间戳 (***timestamp***): 事件的时间戳为 1700045422000,表示事件发生的时间。
    • 线程ID (***threadId***): 线程ID 是 204,表示执行这个查询的线程的标识符。
    • 执行时间 (***executionTime***): 执行时间为 0,表示执行这个查询所花费的时间。
    • 错误代码 (***errorCode***): 错误代码为 0,表示查询执行没有错误。
    • 数据库 (***database***): 数据库为 test2023,表示这个查询发生在 test2023 数据库中。
    • SQL 查询 (***sql***): 实际的 SQL 查询为 CREATE TABLE t_user(idbigint(20) NOT NULL AUTO_INCREMENT,userName varchar(100) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4,表示执行了在 test2023 数据库中创建名为 t_user 的表的操作。
    • 这个事件的作用是在 test2023 数据库中创建了一个名为 t_user 的表,该表包含 iduserName 两个字段,其中 id 是自增的主键。这种类型的事件常常用于记录数据库结构的变化,以便进行数据备份、迁移和版本控制等操作。
    • 在这里插入图片描述
  • 插入表数据

  • INSERT INTO `test2023`.`t_user` (`id`, `userName`)
    VALUES("10086","用心记录技术,走心分享,始于后端,不止于后端,励志成为一名优秀的全栈架构师,真正的实现码中致富。");
    
  • 在这里插入图片描述

  • 这个事件也是一个 binlog 事件,表示一个 SQL 查询事件,具体如下:

    • 事件类型 (***eventType***): 该事件的类型是 QUERY,表示这是一个 SQL 查询事件。
    • 时间戳 (***timestamp***): 事件的时间戳为 1700045547000,表示事件发生的时间。
    • 线程ID (***threadId***): 线程ID 是 204,表示执行这个查询的线程的标识符。
    • 执行时间 (***executionTime***): 执行时间为 0,表示执行这个查询所花费的时间。
    • 错误代码 (***errorCode***): 错误代码为 0,表示查询执行没有错误。
    • 数据库 (***database***): 数据库为 test2023,表示这个查询发生在 test2023 数据库中。
    • SQL 查询 (***sql***): 实际的 SQL 查询为 INSERT INTO test2023.t_user (id, userName) VALUES ( "10086", "用心记录技术,走心分享,始于后端,不止于后端,励志成为一名优秀的全栈架构师,真正的实现码中致富。",表示执行了向 test2023 数据库的 t_user 表中插入一行数据
  • 这个事件的作用是向 t_user 表中插入了一行数据,包含了 iduserName 两个字段的值。这种类型的事件通常用于记录数据的变化,以便进行数据备份、同步和迁移等操作。

  • 在这里插入图片描述

  • 修改表数据

  • UPDATE `test2023`.`t_user`
    SET `id` = '10086',`userName` = '我的修改数据!!!'
    WHERE(`id` = '10086');
    
  • 在这里插入图片描述

  • 这个事件同样是一个 binlog 事件,表示一个 SQL 查询事件,具体如下:

    • 事件类型 (***eventType***): 该事件的类型是 QUERY,表示这是一个 SQL 查询事件。
    • 时间戳 (***timestamp***): 事件的时间戳为 1700045675000,表示事件发生的时间。
    • 线程ID (***threadId***): 线程ID 是 204,表示执行这个查询的线程的标识符。
    • 执行时间 (***executionTime***): 执行时间为 0,表示执行这个查询所花费的时间。
    • 错误代码 (***errorCode***): 错误代码为 0,表示查询执行没有错误。
    • 数据库 (***database***): 数据库为 test2023,表示这个查询发生在 test2023 数据库中。
    • SQL 查询 (***sql***): 实际的 SQL 查询为 UPDATE test2023.t_userSETid= '10086', userName = '我的修改数据!!!' WHERE (id = '10086'),表示执行了更新 test2023 数据库中的 t_user 表中一行数据的操作。
  • 这个事件的作用是将 t_user 表中 id10086 的行的数据进行更新,将 id 修改为 10086userName 修改为 ‘我的修改数据!!!’。这种类型的事件通常用于记录数据的变化,以便进行数据备份、同步和迁移等操作。

  • 在这里插入图片描述

  • 删除表数据

  • DELETE
    FROMt_user
    WHEREid = '10086';
    
  • 在这里插入图片描述

  • 这个事件同样是一个 binlog 事件,表示一个 SQL 查询事件,具体如下:

    • 事件类型 (***eventType***): 该事件的类型是 QUERY,表示这是一个 SQL 查询事件。
    • 时间戳 (***timestamp***): 事件的时间戳为 1700045755000,表示事件发生的时间。
    • 线程ID (***threadId***): 线程ID 是 204,表示执行这个查询的线程的标识符。
    • 执行时间 (***executionTime***): 执行时间为 0,表示执行这个查询所花费的时间。
    • 错误代码 (***errorCode***): 错误代码为 0,表示查询执行没有错误。
    • 数据库 (***database***): 数据库为 test2023,表示这个查询发生在 test2023 数据库中。
    • SQL 查询 (***sql***): 实际的 SQL 查询为 DELETE FROM t_user WHERE id = '10086',表示执行了删除 test2023 数据库中的 t_user 表中一行数据的操作。
  • 这个事件的作用是删除 t_user 表中 id10086 的行。这种类型的事件通常用于记录数据的删除操作,以便进行数据备份、同步和迁移等操作。

  • 在这里插入图片描述

  • 总结: binlog_format 设置为 mixed 时,对于 INSERT、UPDATE 和 DELETE 操作,它们在 binlog 中的事件类型都会被表示为 QUERY 事件。这是因为在 mixed 模式下,MySQL 使用了不同的方式来记录不同类型的操作,但在 binlog 中,它们都被包装成了 QUERY 事件。

  • 在 mixed 模式下:

    • 对于某些语句级别的操作(例如非确定性的语句或不支持事务的存储引擎),会使用 STATEMENT 事件。
    • 对于其他一些情况,会使用 ROW 事件,将变更的行作为事件的一部分进行记录。
  • 这就是为什么看到的 INSERT、UPDATE 和 DELETE 操作的事件类型都是 QUERY。在处理这些事件时,需要根据具体的 SQL 查询语句或其他信息来确定操作的类型。

http://www.yayakq.cn/news/697272/

相关文章:

  • 泰兴网站推广网销是做什么的
  • 网站如何做伪静态页面通用技术作品设计方案
  • 建设网站的技术性背景在线图片编辑去除水印教程
  • 临沂网站建设铭镇wordpress主题怎么破解
  • 长武网站建设微信商城搭建
  • 美食网站建设内容规划郑州网站托管公司
  • 网站的流量是怎么回事如何选择网站开发公司
  • 丹棱网站建设湖南省郴州市有几个县
  • 工程造价信息平台seo工作内容和薪资
  • 360免费建站怎么样杭州网站定制开发哪家好
  • 什么网站广告做多刀模 东莞网站建设
  • 长安网站制作公司消费者联盟网站怎么做
  • seo网站的优化方案四川网站建设服务
  • php做电商网站注册新公司网上核名流程
  • 建设网站对公司起什么作用是什么广告设计图片用什么软件
  • ktv网站模板海报素材网
  • 建筑工程有限责任公司百度网站排名优化软件
  • 做漫画封面的网站哈尔滨建站模板源码
  • 为什么建设银行的网站打不开长春seo排名
  • 邹城网站建设zc273500网站流量ip造假图片
  • 提供网站建设公司有哪些wordpress给图片加链接地址
  • 网站优化试卷工作服定做厂家 成都
  • 成品网站货源1建立网站找什么公司
  • 网站多久才能在百度上收到wordpress 数据还原
  • 兰州门户网站建设wordpress 文章新窗口打开
  • 苏州网站建设创意用文件传输协议登录网站
  • 重庆品牌网站建设公司电子商务网站建设思维导图
  • 雄安做网站网站策划书案例
  • 网站建设是专业wordpress 更新提示
  • 建立一个个人介绍网站软件定制开发费用云鲸互创信任