问题描述

某MySQL服务器出现大量慢日志,慢日志中SQL语句部分为COMMIT,执行时间在100秒至400秒。

由于定期对该服务器进行SHOW PROCESSLIST快照, 通过PROCESSLIST日志查看服务器执行情况。

在1:02至1:32期间,业务进行数据归档操作,归档SQL支持超过1800秒:

IdUserHost dbCommandTimeState Info

8487369xxx_rw172.16.16.26:28148xxxQuery1807Sending dataINSERT INTO xxx_async_task_20200301 SELECT * FROM xxx_async_task_backTable_17533 WHERE created_at < "20200301"

在1:33,归档SQL状态从Sending data切换为query end:

IdUserHost dbCommandTimeState Info

8487369xxx_rw172.16.16.26:28148xxxQuery1807query endINSERT INTO xxx_async_task_20200301 SELECT * FROM xxx_async_task_backTable_17533 WHERE created_at < "20200301"

在1:33至1:36, 该SQL执行状态仍为:query end,开始出现COMMIT命令等待(starting),活跃连接数从1暴涨至200+:

IdUserHost dbCommandTimeState Info

8487369xxx_rw172.16.16.26:28148xxxQuery1807query endINSERT INTO xxx_async_task_20200301 SELECT * FROM xxx_async_task_backTable_17533 WHERE created_at < "20200301"

8487410xxx_rw172.16.16.89:31590xxxQuery7startingcommit

8487465xxx_rw172.16.16.91:58612xxxQuery10startingcommit

3942982aurora11.223.143.134:42889NULLQuery130query end/* rds internal mark */ CREATE TABLE IF NOT EXISTS mysql.ha_health_check (\n id BIGINT DEFAULT 0,\n type CHAR(1) DEFAULT ‘0‘,\n PRIMARY KEY (type)\n)\n ENGINE = InnoDB

PS: 阿里云的内部账号进行ha_health_check的CREATE TABLE 命令也被阻塞

在1:36,归档SQL执行完成,处于starting状态的COMMIT命令也随之消失,MySQL生成单个文件超过20G的BINLOG,MySQL慢日志中记录大量包含COMMIT操作的慢日志。

在1:37至1:40,网络流出量暴涨,大量BINLOG数据被推送至从库进行数据同步。

线程执行状态

*Sending data

The thread is reading and processing rows for a SELECT statement, and sending data to the client.

Because operations occurring during this state tend to perform large amounts of disk access (reads), it is often the longest-running state over the lifetime of a given query.

*query end

This state occurs after processing a query but before the freeing items state.

*starting

未在MySQL官网找到解释

问题原因

导致COMMIT操作出现在慢日志原因:

1、在ROW复制模式下,事务修改大量数据,在COMMIT时需要生成BINLOG事件并刷新至BINLOG文件中,由于BINLOG文件只能顺序写入,导致其他事务COMMIT时被阻塞。

2、当存储系统出现IO瓶颈或出现故障时,如当RAID卡充放电过程中,RAID系统从Write Back切换为Write Through后,存储IO使用率暴涨,通用会出现COMMIT操作"长时间执行"情况。

原文:https://www.cnblogs.com/gaogao67/p/12622642.html

mysql commit慢_MySQL慢日志中COMMIT事件相关推荐

  1. mysql ib_logfile 数量_Mysql 事务日志(Ib_logfile)

    mysql的innodb中事务日志ib_logfile(0/1) 概念: 事务日志或称redo日志,在mysql中默认以ib_logfile0,ib_logfile1名称存在,可以手工修改参数,调节开 ...

  2. mysql heartbeat 慢_Mysql 慢日志优化分析方法

    mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数. 如果在my.cnf里面修改,需增加 ...

  3. mysql server_id作用_MySQL复制过程中server-id的理解

    一.    server-id做什么用的,你知道吗? 1. MySQL的同步的数据中是包含server-id的,用于标识该语句最初是从哪个server写入的,所以server-id一定要有的 2. 每 ...

  4. mysql qpstps测试_mysql操作日志

    关于 mysql操作日志的搜索结果 回答 增量备份的原理就是使用了mysql的binlog日志.本次操作的MySQL版本为5.5.40 for Linux (x86_64).增量备份要确保打开了二进制 ...

  5. mysql常见排错_MySQL常规日志排错

    MySQL版本:5.0.82 测试环境中,开发人员告诉我,数据库无法insert插入提示 lock wait timeout: 第一印象是被某个语句锁住,多次执行show full processli ...

  6. mysql binlog 记录_MYSQL binlog 日志内容查看

    记录mysql数据库真正执行更改的所有操作(DML语句),不包含那些没有修改任何数据的语句,不会记录select和show这样的语句. 二进制日志的作用: 1. 可以完成主从复制的功能 2. 进行恢复 ...

  7. mysql 触发器 赋值_MYSQL的触发器中 变量赋值

    CREATETRIGGERsync_doingBEFOREINSERTONet_contentFOREACHROWBEGINSELECT@uc_id:=user_headFROMet_usersWHE ...

  8. j2ee与mysql乱码过滤_mysql 在 j2ee中配置的乱码问题处理

    最近要想配置一个j2ee和mysql的工程,却遇到了乱码问题,找了很多的文章各有个的说法,算式零星的总结: 1.统一使用utf-8编码 2.在数据库目录中修改my.ini文件 [mysql] defa ...

  9. mysql中文长方形_MySql 5.7 中文文档 - 12.16.9.2 使用最小边界矩形的空间关系函数 | Docs4dev...

    MySQL 提供了几个特定于 MySQL 的函数,用于测试两个几何g1和g2的最小边界矩形(MBR)之间的关系.返回值 1 和 0 分别 table 示 true 和 false. 本节稍后将描述根据 ...

  10. mysql存储过程含义_MySQL存储过程定义中的特性(characteristic)的含义

    MySQL的存储过程蛮啰嗦的,与MSSQL或者Oracle的存储过程相比,如果没有显式指定,他会隐含地指定一系列特性(characteristic)的默认值来创建存储过程 通常在使用图形界面工具进行存 ...

最新文章

  1. linux系统负载检查方法
  2. C/C++控制台应用程序——画三角形、圆、直线、矩形
  3. 深度学习(8)TensorFlow基础操作四: 维度变换
  4. ARM(IMX6U)裸机之I.MX6ULL硬件启动方式的选择
  5. vim复制、删除和粘贴一行
  6. JAVA script 循环 图片_深入分析JavaScript 事件循环(Event Loop)
  7. php可以用lucene吗,php – Lucene外国字符问题
  8. 消息循环,注册窗口,创建窗口【图解】
  9. 127.0.0.1 zxt.php_windows 10 下docker布置nginx+php环境,用宿主WEB目录负载均衡
  10. Xv6 编写用户程序
  11. Unity3D隐藏启动logo
  12. CF 285D 285E
  13. 洛谷 [樱花] 题解
  14. 程序员读《三体》后看到了什么?
  15. Ubuntu Linux 安装 QQ音乐打不开的问题
  16. 没有密码如何解除工作表保护
  17. matlab中根据信号和信噪比添加高斯白噪声(函数直接使用)
  18. MySQL数据库备份+恢复
  19. 读《移山之道》——问渠哪得清如许,为有源头活水来
  20. 等级保护、风险评估和安全测评分别是什么?

热门文章

  1. Unity采用Forge Networking Remastered数据的远程传输 Basic RPC Example
  2. Hololens开发常见错误
  3. python 帮助 help
  4. Attit 现代编程语言重要特性目录第一章 类型系统 基本三大类型 2第一节 字符串 数字 bool 2第二节 推断局部变量 2第三节 动态类型 2第二章 可读性与开发效率 简单性 2
  5. Atitit httpclient feign使用总结RestTemplate Httpclient重要的功能 重试与超时 1.RedirectExec执行器的默认策略是,在接收到重定向错误码3
  6. Atitit 编程语言语言规范总结 目录 1. 语言规范 3 2. Types 3 2.1.1. Primitive types 3 2.1.2. Compound types 4 3. State
  7. Atitit.wrmi web rmi框架新特性
  8. paip.php页面调试设置及流程
  9. 程序性能之显示大表格
  10. (转)从Fintech到Techfin,未来十年有九大重要挑战