开发者社区> 问答> 正文

PolarDB事务锁死锁分析

已解决

PolarDB事务锁死锁分析

展开
收起
提个问题 2024-06-01 11:06:26 53 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    当一个连接会话等待另外一个会话持有的互斥行锁时,就会发生锁等待情况,行锁等待超时的报错:“Lock wait timeout exceeded; try restarting transaction”。

    执行以下操作,查看存在当前正在执行的事务和等待锁的事务
    --查看上次死锁信息
    show engine innodb status;
    --执行以下SQL语句,查看正在执行的事务select * from information_schema.INNODB_TRX; 

    mysql 5.x
    --查看锁
    select * from information_schema.INNODB_LOCKS; 
    --查看锁等待: 
    select * from information_schema.INNODB_LOCK_WAITS; 

    mysql 8.x
    --查看锁: 
    select * from performance_schema.data_locks;
    --查看锁等待:
    select * from performance_schema.data_lock_waits;
    --查看mdl锁:
    select * from performance_schema.metadata_locks;


    解决死锁:
    关闭阻塞源会话,可以帮助快速解除阻塞。
    查看是否有长时间未提交的事务,及时提交事务。
    避免非必要大查询。


    2024-06-01 11:06:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
2023云栖大会:PolarDB for AI 立即下载