开发者社区 问答 正文

PolarDB行锁等待如何处理

已解决

PolarDB行锁等待如何处理

展开
收起
提个问题 2024-05-29 14:07:42 40 分享 版权
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    通常情况下,持有该互斥行锁的会话会迅速的执行完相关操作,并释放掉持有的互斥锁(事务提交或者回滚),然后等待的会话在行锁等待超时时间内获得该互斥行锁,进行下一步操作。但在某些情况下,比如一个实例未感知到的来自客户端应用的数据库会话中断,持有该互斥行锁的会话长时间不释放该互斥行锁,此时如果有其他会话申请该互斥行锁,则会导致大量的行锁等待与行锁等待超时。

    请您执行以下操作,查看存在当前正在执行的事务和等待锁的事务。执行以下SQL语句,查看正在执行的事务。
    SELECT * FROM information_schema.INNODB_TRX;

    执行以下SQL语句,查看等待锁的事务。
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

    执行以下SQL语句,查看正在锁的事务。
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
    2024-05-29 14:07:43
    赞同 展开评论