MySQL binlog 日志解析后的exec_time导致表示什么时间?
1. exec_time 到底表示什么时间?
MySQL binlog日志解析后,我们能看到会有 exec_time= ,从字面意思理解这个记录的是执行时间,那这个记录的到底是单条sql的执行时间?还是事务的执行时间?下面通过测试来解读一下!
2.创建测试库表
mysql> create database test_shao;
Query OK, 1 row affected (0.03 sec)
mysql> use test_shao;
Database changed
mysql> create table test_1(id int not null auto_increment,primary key(id)) engine=innodb default charset=utf8mb4;
Query OK, 0 rows affected (0.03 sec)
3.RC隔离级别下 事务测试
show variables like 'transaction_isolation';
+-----------------------+----------------+
| Variable_name | Value |
+-----------------------+----------------+
| transaction_isolation | READ-COMMITTED |
+-----------------------+----------------+flush logs;
begin;
select count(*) from cmp_sys_1.message;
insert into test_1 select sleep(5);
select count(*) from cmp_sys_1.message;
insert into test_1 select sleep(10);
commit;mysql> flush logs;
Query OK, 0 rows affected (0.02 sec)mysql> begin;
Query OK, 0 rows affected (0.00 sec)mysql> select count(*) from cmp_sys_1.message;+----------+
| count(*) |
+----------+
| 62882460 |
+----------+
1 row in set (45.24 sec)mysql>
mysql> insert into test_1 select sleep(5);
Query OK, 1 row affected (5.00 sec)
Records: 1 Duplicates: 0 Warnings: 0mysql> select count(*) from cmp_sys_1.message;
+----------+
| count(*) |
+----------+
| 62882460 |
+----------+
1 row in set (35.73 sec)mysql> insert into test_1 select sleep(10);
Query OK, 1 row affected (10.00 sec)
Records: 1 Duplicates: 0 Warnings: 0mysql> commit;
Query OK, 0 rows affected (0.00 sec)
4.解析第3步生成的主库binlog
show master status;
+-----------------+-----------+--------------+------------------+----------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+-----------+--------------+------------------+----------------------------------------------+
| 3306-bin.000781 | 364155470 | | | bc129ea5-5f01-11ed-ae48-fa163efcbfd5:1-17199 |
+-----------------+-----------+--------------+------------------+----------------------------------------------+
show variables like 'log_bin_basename';
+------------------+-----------------------------------+
| Variable_name | Value |
+------------------+-----------------------------------+
| log_bin_basename | /app/mysql/mysql3306/log/3306-bin |
+------------------+-----------------------------------+mysqlbinlog --base64-output=decode-rows -vvv 3306-bin.000781 >3306-bin.000781.txt
5.解析第3步生成的从库binlog
6.RR 隔离级别下,statment binlog格式下事务测试(从库还是row格式binlog)
#RC隔离级别下,binlog_format不允许使用statment格式
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)mysql> begin;
Query OK, 0 rows affected (0.00 sec)mysql> select count(*) from cmp_sys_1.message;
+----------+
| count(*) |
+----------+
| 62882460 |
+----------+
1 row in set (38.37 sec)mysql> insert into test_1 select sleep(10);
Query OK, 1 row affected, 1 warning (10.05 sec)
Records: 1 Duplicates: 0 Warnings: 1mysql> select count(*) from cmp_sys_1.message;
+----------+
| count(*) |
+----------+
| 62882460 |
+----------+
1 row in set (26.10 sec)mysql> insert into test_1 select sleep(15);
Query OK, 1 row affected, 1 warning (15.00 sec)
Records: 1 Duplicates: 0 Warnings: 1mysql> commit;
Query OK, 0 rows affected (0.00 sec)
7.解析第6步主库binlog日志(binlog_format=statment)
8.解析第6步从库binlog(binlog_format=row)
9.主库从库隔离级别都为RR,binlog_format=row时事务测试
mysql> use test_shao;
Database changed
mysql> set transaction_isolation='REPEATABLE-READ';
Query OK, 0 rows affected (0.00 sec)mysql> set binlog_format='Statement';
Query OK, 0 rows affected (0.00 sec)mysql> select * from test_1;
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
+----+
6 rows in set (0.00 sec)mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)mysql> begin;
Query OK, 0 rows affected (0.00 sec)mysql> select count(*) from cmp_sys_1.message;+----------+
| count(*) |
+----------+
| 62882460 |
+----------+
1 row in set (29.95 sec)mysql>
mysql> insert into test_1 select sleep(4);
Query OK, 1 row affected, 1 warning (4.02 sec)
Records: 1 Duplicates: 0 Warnings: 1mysql> select count(*) from cmp_sys_1.message;
+----------+
| count(*) |
+----------+
| 62882460 |
+----------+
1 row in set (24.32 sec)mysql> insert into test_1 select sleep(8);
Query OK, 1 row affected, 1 warning (8.00 sec)
Records: 1 Duplicates: 0 Warnings: 1mysql> commit;
Query OK, 0 rows affected (0.00 sec)
10.解析第9步中主库binlog日志(隔离级别RR,binlog_format=statment)
11.解析第9步中从库binlog日志(隔离级别RR,binlog_format=statment)
#对应的relaylog中记录的是statment格式的binlog
##从库记录的binlog格式依然为row格式是因为我只是设置了从库全局的隔离级别为RR,binlog_format=statment,但是我并没有重启从库io和sql线程。如果只是设置了从库的binlog_format=statment,主要为row格式的话,从库复制会报如下错误
LAST_ERROR_MESSAGE: Worker 1 failed executing transaction 'bc129ea5-5f01-11ed-ae48-fa163efcbfd5:17204' at master log 3306-bin.000785, end_log_pos 488; Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.'
设置主库从库隔离级别为RR,binlog_format格式为statment重启复制线程后测试结果如下:
mysql> use test_shao;
Database changed
mysql> set transaction_isolation='REPEATABLE-READ';
Query OK, 0 rows affected (0.00 sec)mysql> set binlog_format='Statement';
Query OK, 0 rows affected (0.00 sec)mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)mysql> begin;
Query OK, 0 rows affected (0.00 sec)mysql> select count(*) from cmp_sys_1.message;
+----------+
| count(*) |
+----------+
| 62882460 |
+----------+
1 row in set (25.33 sec)mysql> insert into test_1 select sleep(2);
Query OK, 1 row affected, 1 warning (2.03 sec)
Records: 1 Duplicates: 0 Warnings: 1mysql> select count(*) from cmp_sys_1.message;
+----------+
| count(*) |
+----------+
| 62882460 |
+----------+
1 row in set (20.08 sec)mysql> insert into test_1 select sleep(4);
Query OK, 1 row affected, 1 warning (4.01 sec)
Records: 1 Duplicates: 0 Warnings: 1mysql> commit;
Query OK, 0 rows affected (0.00 sec)
主库binlog日志
从库binlog日志
#为什么从库binlog中第二个语句的exec_time时间为10s??从库statment binlog格式下,exec_time 到底如何记录时间,有待继续研究
相关文章:

MySQL binlog 日志解析后的exec_time导致表示什么时间?
1. exec_time 到底表示什么时间? MySQL binlog日志解析后,我们能看到会有 exec_time ,从字面意思理解这个记录的是执行时间,那这个记录的到底是单条sql的执行时间?还是事务的执行时间?下面通过测试来解读一…...

【Linux】:git基本操作_添加文件_两种场景_查看.git文件 || git修改文件 || 版本回退
🎯添加⽂件–场景⼀ 🎯在包含.git的⽬录下新建⼀个ReadMe⽂件,我们可以使⽤ git add 命令可以将⽂件添加到暂存区: • 添加⼀个或多个⽂件到暂存区: git add [file1] [file2] … • 添加指定⽬录到暂存区,…...

Django 基于ORM的CURD、外键关联,请求的生命周期
文章目录 基于ORM进行的CURDORM外键关联Django请求的生命周期流程图 基于ORM进行的CURD 本质上就是通过面向对象的方式,对数据库的数据进行增、删、改、查。 这里将会将我们之前所有内容结合到一起,首先确保基于上序操作已经建立好了UserInfo表ÿ…...
集合贴4——QA机器人设计与优化
基础课21——知识库管理-CSDN博客文章浏览阅读342次,点赞6次,收藏2次。知识库中有什么信息内容,决定了智能客服机器人在回答时可以调用哪些信息内容,甚至可以更简单地理解为这是智能客服机器人的话术库。https://blog.csdn.net/22…...

【Verilog语法】
Verilog语法 1. Verilog语法1.1 拼接运算符1.2 运算符优先级1.3 注释1.4 关键字1.5 模块结构1.6 结构语句1.7 赋值语句1.8 条件语句1.9 状态机1.10 OSI七层模型 1. Verilog语法 1.1 拼接运算符 1.2 运算符优先级 1.3 注释 1.4 关键字 1.5 模块结构 1.6 结构语句 1.7 赋值语句 …...

阿里云通用算力型u1服务器和e实例有什么区别?选择攻略
阿里云服务器ECS经济型e实例和通用算力型u1实例有什么区别?如何选择?ECS经济型e实例是共享型云服务器,通用算力型u实例是企业级独享型云服务器,e实例性价比高,现在2核2G3M带宽一年99元,云服务器u1价格相对要…...

modbus-TCP协议详解
modbus-TCP协议详解 1996年施耐德公司推出基于以太网TCP/IP的modbus协议:modbus-TCP。 MODBUS-TCP使MODBUS-RTU协议运行于以太网,MODBUS-TCP使用TCP/IP以太网在站点间传送MODBUS报文,MODBUS-TCP结合了以太网物理网络和网络标准TCP/IP以及以…...

爬虫项目(12):正则、多线程抓取腾讯动漫,Flask展示数据
文章目录 书籍推荐正则抓取腾讯动漫数据Flask展示数据 书籍推荐 如果你对Python网络爬虫感兴趣,强烈推荐你阅读《Python网络爬虫入门到实战》。这本书详细介绍了Python网络爬虫的基础知识和高级技巧,是每位爬虫开发者的必读之作。详细介绍见ὄ…...
gedit编辑文件时常用快捷键
问题: 最近在修改文件时提到了gedit这个工具,与vi一样也是一个文件编辑器。但是在命令方面又有不同,在快捷键方面和Windows的使用习惯非常相似。 gedit举例: CTRL-Z:撤销CTRL-C:复制CTRL-V:粘贴CTRL-T:缩进CTRL-Q:退出CTRL-S:保…...
【C++干货铺】剖析string | 底层实现
个人主页点击直达:小白不是程序媛 C专栏:C干货铺 代码仓库:Gitee 目录 成员变量 成员函数 构造和拷贝构造 赋值重载 析构函数 operator[ ] size 迭代器 reserve(扩容函数) push_back(尾插函数)…...

nmap原理与使用
kali的命令行中可以直接使用 nmap 命令,打开一个「终端」,输入 nmap 后回车,可以看到 nmap 的版本,证明 nmap 可用。 一、端口扫描 扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口&am…...

AI批量剪辑矩阵托管系统----源码技术开发
AI批量剪辑矩阵托管系统----源码技术开发 抖音账号矩阵系统是基于抖音开放平台研发的用于管理和运营多个抖音账号的平台。它可以帮助用户管理账号、发布内容、营销推广、分析数据等多项任务,从而提高账号的曝光度和影响力。 具体来说,抖音账号矩阵系统可…...
Pandas数据预处理python 数据分析之4——pandas 预处理在线闯关_头歌实践教学平台
Pandas数据预处理python 数据分析之4——pandas 预处理 第1关 数据读取与合并第2关 数据清洗第3关 数据转换 第1关 数据读取与合并 任务描述 本关任务:加载 csv 数据集,实现 DataFrame 合并。 编程要求 根据提示,在右侧编辑器补充代码&#…...

[html] 动态炫彩渐变背景
废话不多说,直接上源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>ZXW-NUDT: 动态炫…...

AI 绘画 | Stable Diffusion 高清修复、细节优化
前言 在 Stable Diffusion 想要生成高清分辨率的图片。在文生图的功能里,需要设置更大的宽度和高度。在图生图的功能里,需要设置更大的重绘尺寸或者重绘尺寸。但是设置完更大的图像分辨率,需要更大显存,1024*1024的至少要电脑的空…...

想要检测TikTok网络是否安全?这五个网站请收好
Tiktok目前在海外大火,越来越多的人想要进入TikTok的海外市场并捞一桶金。然而,成功并非易事。想要在TikTok中立足,我们必须保证我们的设备、网络环境和网络节点完全符合官方的要求,并且没有任何异常或风险。那么我们该如何设置、…...

【docker:容器提交成镜像】
容器创建部分请看:点击此处查看我的另一篇文章 容器提交为镜像 docker commit -a "sinwa lee" -m "首页变化" mynginx lxhnginx:1.0docker run -d -p 88:80 --name lxhnginx lxhnginx:1.0为啥没有变啊,首页? 镜像打包 …...
UE5中一机一码功能
创建蓝图函数库 1、获取第一个有效的硬盘ID // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "GetDiskIDClass.gen…...

gpt支持json格式的数据返回(response_format: ‘json_object‘)
Api.h5.chatCreateChatCompletion({model: gpt-3.5-turbo-1106,token: sk-f4fe8b67-fcbe-46fd-8cc9-fd1dac5d6d59,messages: [{role: user,content:使用json格式返回十二生肖,包含中文名和英文名,[{id:"1", enName:"", cnName: &quo…...
MySQL(13):约束
约束(constraint)概述 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。 它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息 而提…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...