如何查看RDS for MySQL 数据库实例当前运行的事务

MySQL
问题描述

我该如何查看RDS for MySQL 当前运行的事务?

解决方案

MySQL 提供了丰富的命令与日志帮助您查看MySQL当前运行的事务,这有助于帮助您分析服务器负载,进行问题排查。

MySQL日志

  1. 打开MySQL 慢日志来分析那些不符合预期的SQL语句。

  2. MySQL 一般日志(general log)会记录有所的语句,不论语句是否会执行成功或是否有语法错误,但是一般日志通常会迅速占用大量的存储空间,特别是在繁忙的业场景下。因此建议您在使用时密切关注存储空间的占用情况。

MySQL 命令

下面是一些常用的命令,来查看当前运行事务:

show full processlist

show full processlist[1] 显示了服务器当前正在运行的SQL 语句,对问题排查很有帮助

mysql> show full processlist\G;
*************************** 1. row ***************************
     Id: 6213 # connection id
   User: repl # 连接用户
   Host: 172.22.175.136:44020 
     db: NULL #所连接到的数据库
Command: Binlog Dump GTID
   Time: 1623901 # 处于此状态的时间(s)
  State: Master has sent all binlog to slave; waiting for more updates
   Info: NULL # 当前执行的命令

  :如果不使用full字段,您只能查看Info字段的前100个字符

  :您需要拥有PROCESS 权限才能查看 MySQL 数据库实例上运行的所有线程。如果没有管理员权限,SHOW PROCESSLIST 只会显示与您正在使用的 MySQL 用户关联的线程。

show engine innodb status\G

show engine innodb status [2] 的输出包含了innodb内部大量的状态信息,例如

  1. 信号量等待
  2. 外键和死锁信息
  3. 事务锁等待信息等等
mysql> show engine innodb status\G;
*************************** 1. row ***************************
  Type: InnoDB
  Name: 
Status: 
=====================================
2021-12-07 13:50:57 0x7f263fcfe700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 6 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 1621372 srv_active, 0 srv_shutdown, 9384 srv_idle
srv_master_thread log flush and writes: 1630756
……
……
……

查询那些事务处于等待状态

SELECT
	r.trx_id AS waiting_trx_id,
	r.trx_mysql_thread_id AS waiting_thread,
	r.trx_query AS waiting_query,
	b.trx_id AS blocking_trx_id,
	b.trx_mysql_thread_id AS blocking_thread,
	b.trx_query AS blocking_query 
FROM
	information_schema.innodb_lock_waits AS w
	INNER JOIN information_schema.innodb_trx AS b ON b.trx_id = w.blocking_trx_id
	INNER JOIN information_schema.innodb_trx AS r ON r.trx_id = w.requesting_trx_id;
参考文档

[1] https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html

[2] https://dev.mysql.com/doc/refman/5.7/en/show-engine.html

如果您有其他问题,欢迎您联系火山引擎技术支持服务

179
0
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论