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

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表&#xff…...

集合贴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网络爬虫的基础知识和高级技巧,是每位爬虫开发者的必读之作。详细介绍见&#x1f44…...

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(尾插函数&#xff09…...

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] 动态炫彩渐变背景

废话不多说&#xff0c;直接上源码 <!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 想要生成高清分辨率的图片。在文生图的功能里&#xff0c;需要设置更大的宽度和高度。在图生图的功能里&#xff0c;需要设置更大的重绘尺寸或者重绘尺寸。但是设置完更大的图像分辨率&#xff0c;需要更大显存&#xff0c;1024*1024的至少要电脑的空…...

想要检测TikTok网络是否安全?这五个网站请收好

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

【docker:容器提交成镜像】

容器创建部分请看&#xff1a;点击此处查看我的另一篇文章 容器提交为镜像 docker commit -a "sinwa lee" -m "首页变化" mynginx lxhnginx:1.0docker run -d -p 88:80 --name lxhnginx lxhnginx:1.0为啥没有变啊&#xff0c;首页&#xff1f; 镜像打包 …...

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格式返回十二生肖&#xff0c;包含中文名和英文名&#xff0c;[{id:"1", enName:"", cnName: &quo…...

MySQL(13):约束

约束(constraint)概述 数据完整性&#xff08;Data Integrity&#xff09;是指数据的精确性&#xff08;Accuracy&#xff09;和可靠性&#xff08;Reliability&#xff09;。 它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息 而提…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...