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

网站建设最好的公司东莞外贸网站

网站建设最好的公司,东莞外贸网站,中国建设银行的网站色彩,长沙模板网站建设企业【Binlog实战】#xff1a;基于Spring监听Binlog日志 binlog的三种模式 MySQL 的二进制日志#xff08;binlog#xff09;有三种不同的格式#xff0c;通常被称为 binlog 模式。这三种模式分别是 Statement 模式、Row 模式和Mixed 模式。 Statement 模式#xff1a; 在 …【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_formatmixed其中statement、row 和 mixed 分别代表 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) ) ENGINEInnoDB AUTO_INCREMENT10 DEFAULT CHARSETutf8mb4;这个事件也是一个 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) ) ENGINEInnoDB AUTO_INCREMENT10 DEFAULT CHARSETutf8mb4表示执行了在 test2023 数据库中创建名为 t_user 的表的操作。这个事件的作用是在 test2023 数据库中创建了一个名为 t_user 的表该表包含 id 和 userName 两个字段其中 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 表中插入了一行数据包含了 id 和 userName 两个字段的值。这种类型的事件通常用于记录数据的变化以便进行数据备份、同步和迁移等操作。 修改表数据 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 表中 id 为 10086 的行的数据进行更新将 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 表中 id 为 10086 的行。这种类型的事件通常用于记录数据的删除操作以便进行数据备份、同步和迁移等操作。 总结 binlog_format 设置为 mixed 时对于 INSERT、UPDATE 和 DELETE 操作它们在 binlog 中的事件类型都会被表示为 QUERY 事件。这是因为在 mixed 模式下MySQL 使用了不同的方式来记录不同类型的操作但在 binlog 中它们都被包装成了 QUERY 事件。 在 mixed 模式下 对于某些语句级别的操作例如非确定性的语句或不支持事务的存储引擎会使用 STATEMENT 事件。对于其他一些情况会使用 ROW 事件将变更的行作为事件的一部分进行记录。 这就是为什么看到的 INSERT、UPDATE 和 DELETE 操作的事件类型都是 QUERY。在处理这些事件时需要根据具体的 SQL 查询语句或其他信息来确定操作的类型。
http://www.w-s-a.com/news/889245/

相关文章:

  • 普兰店网站建设一般做网站什么价格
  • 网站建设的发展目标甘肃网站设计公司
  • 常州西站建设规划室内装修设计学校哪里好
  • 大连网站制作选择ls15227如何编辑网站
  • 网站发稿平台迪士尼网站是谁做的
  • 常州有哪些好的网站建设案例wordpress 360 插件
  • 模板网站有后台么柳城网站建设
  • 地方门户网站制作一级做c爱片的网站
  • 自己上传图片做动漫图网站北京福田汽车
  • 一级a做爰片免费网站录像ps做网站图片水印
  • 网页广告投放成都优化推广公司
  • 网站开发 印花税网页制作站点
  • 创建个人网站有什么好处国外建站系统
  • 桂林学校网站制作2018年网站设计公司
  • 建网站不想用怎样撤销搜狗收录提交入口网址
  • 做简单网站需要学什么软件有哪些南通优普网站建设
  • 网站排版尺寸湖北交投建设集团集团网站
  • 南京网站设计公司有哪些公司看动漫是怎么做视频网站
  • vs做网站怎么做窗体怎么在电脑上自己做网站吗
  • 做网站应该学什么网站编程 外包类型
  • 双鱼儿 网站建设站群系统哪个好用
  • 怎样自己做刷赞网站电商设计需要学什么软件有哪些
  • 关注城市建设网站居众装饰
  • 网站建设的语言优化企业网站
  • 成都旅游网站建设规划女性门户资讯类网站织梦dedecms模板
  • 二手车为什么做网站网站建设合作合同范文
  • 网站建设维护和网页设计做网站都需要服务器吗
  • 成都网站设计报告书系统平台
  • 怎样进行网站推广wordpress微博图床
  • 做一个平台 网站服务器搭建网架公司股价