DBAtlas · 数据库运维图谱

1205: Lock wait timeout exceeded; try restarting transaction(超出锁等待超时;请尝试重新开始事务)

MySQL

含义

事务等待所需的行锁达 innodb_lock_wait_timeout 秒仍未获取,已超时。

原因

另一事务长时间持有锁而未提交或回滚;空闲的未结束事务、长时间运行的批量更新,或争用激烈的热点行。

解决方法

找出阻塞事务:关联 performance_schema.data_lock_waits 与 data_locks(旧版本中为 information_schema.innodb_lock_waits/innodb_trx)。提交/回滚阻塞事务,必要时用 KILL <trx_mysql_thread_id> 终止它。保持事务简短,不要让事务处于空闲状态(autocommit/应用逻辑)。必要时根据工作负载调整 innodb_lock_wait_timeout。

在 DBAtlas 中打开 →

同一数据库的其他条目