美烦资源网

专注技术文章分享,涵盖编程教程、IT 资源与前沿资讯

MySQL,查询正在运行的事务,根据trx_mysql_thread_id杀掉该事务

说明

SpringBoot项目中,Service的方法中开启了事务,由于其他原因导致mysql LOCK WAIT死锁。

查询数据库正在运行的事务:

SELECT trx.trx_mysql_thread_id,trx.* FROM information_schema.INNODB_TRX trx;

根据这个事务的线程ID(trx_mysql_thread_id),使用mysql命令杀掉线程:

kil 线程id

information_schema.INNODB_TRX表

INNODB_TRX,表提供了信息关于在InnoDB中执行的当前的每个事务,包含是否事务是等待一个锁,当事务开始后事务正在执行的SQL语句。

trx_id:事务ID,只读事务和非锁事务是不会创建id的。

trx_state:事务状态,有以下几种状态:RUNNING、LOCK WAIT、ROLLING BACK和COMMITTING。

trx_started:事务开始时间。

trx_requested_lock_id:事务当前正在等待锁的标识,可以和 INNODB_LOCKS 表 JOIN 以得到更多详细信息。

trx_wait_started:事务开始等待的时间。

trx_weight:事务的权重。代表修改的行数和被事务锁住的行数。为了解决死锁,innodb会选择一个高度最小的事务来当做牺牲品进行回滚。已经被更改的非交易型表的事务权重比其他事务高,即使改变的行和锁住的行比其他事务低。

trx_mysql_thread_id:事务线程 ID,可以和 PROCESSLIST 表 JOIN。

trx_query:事务正在执行的 SQL 语句。

trx_operation_state:事务当前操作状态。

trx_tables_in_use:当前事务执行的 SQL 中使用的表的个数。

trx_tables_locked:当前执行 SQL 的行锁数量。因为只是行锁,不是表锁,表仍然可以被多个事务读和写

trx_lock_structs:事务保留的锁数量。

trx_lock_memory_bytes:事务锁住的内存大小,单位为 BYTES。

trx_rows_locked:事务锁住的记录数。包含标记为 DELETED,并且已经保存到磁盘但对事务不可见的行。

trx_rows_modified:事务更改的行数。

trx_concurrency_tickets:该值代表当前事务在被清掉之前可以多少工作,由
innodb_concurrency_tickets系统变量值指定。

trx_isolation_level:当前事务的隔离级别。

trx_unique_checks:是否打开唯一性检查的标识。

trx_foreign_key_checks:是否打开外键检查的标识。


trx_last_foreign_key_error:最后一次的外键错误信息。

trx_adaptive_hash_latched:自适应哈希索引是否被当前事务阻塞。当自适应哈希索引查找系统分区,一个单独的事务不会阻塞全部的自适应hash索引。自适应hash索引分区通过
innodb_adaptive_hash_index_parts参数控制,默认值为8。

trx_adaptive_hash_timeout:是否为了自适应hash索引立即放弃查询锁,或者通过调用mysql函数保留它。当没有自适应hash索引冲突,该值为0并且语句保持锁直到结束。在冲突过程中,该值被计数为0,每句查询完之后立即释放门闩。当自适应hash索引查询系统被分区(由
innodb_adaptive_hash_index_parts参数控制),值保持为0。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言