mysql死锁查看

本文介绍了如何在MySQL中查看事务等待状况、未关闭的事务,特别是针对不同版本(如5.5/5.7和5.6)的查询方法。通过查看历史会话和用户资源占用,帮助诊断和解决死锁问题。文章最后提到了两种解除死锁状态的策略。
摘要由CSDN通过智能技术生成

查看事务等待状况

select  
 r.trx_id waiting_trx_id,  
 r.trx_mysql_thread_id waiting_thread,  
 r.trx_query waiting_query,  
 b.trx_id blocking_trx_id,  
 b.trx_mysql_thread_id blocking_thread,  
 b.trx_query blocking_query  
from  
 information_schema.innodb_lock_waits w  
inner join information_schema.innodb_trx b on     b.trx_id = w.blocking_trx_id  
inner join information_schema.innodb_trx r on     r.trx_id = w.requesting_trx_id;

查看更具体的事务等待状况

select
  b.trx_state,
  e.state,
  e.time,
  d.state as block_state,
  d.time as block_time,
  a.requesting_trx_id,
  a.requested_lock_id,
  b.trx_query,
  b.trx_mysql_thread_id,
  a.blocking_trx_id,
  a.blocking_lock_id,
  c.trx_query as block_trx_query,
  c.trx_mysql_thread_id as block_trx_mysql_tread_id
from
  information_schema.innodb_lock_waits a
left join information_schema.innodb_trx b on a.requesting_trx_id = b.trx_id
left join information_schema.innodb_trx c on a.blocking_trx_id = c.trx_id
left join information_schema.processlist d on c.trx_mysql_thread_id = d.id
left join information_schema.processlist e on b.trx_mysql_thread_id = e.id
order by
  a.requesting_trx_id;

查看未关闭的事务

mysql 5.5/mysql5.7

    select  
     a.trx_id,  
     a.trx_state,  
     a.trx_started,  
     a.trx_query,  
     b.id,  
     b. user,  
     b. host,  
     b.db,  
     b.command,  
     b.time,  
     b.state,  
     b.info  
     from  
          information_schema.innodb_trx a  
     left join information_sc
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值