Lock wait timeout exceeded; try restarting transaction解决方案
1 | [2021-11-01 09:49:59] [40001][1205] Lock wait timeout exceeded; try restarting transaction |
innodb_trx
当前运行的所有事务
Field | Type | Remark |
---|---|---|
trx_id | varchar | 事务ID |
trx_state | varchar | 事务状态 |
trx_started | datetime | 事务开始时间 |
trx_requested_lock_id | varchar | innodb_locks.lock_id |
trx_wait_started | datetime | 事务开始等待的时间 |
trx_weight | bigint | 事务的权重 |
trx_mysql_thread_id | bigint | 事务线程 ID,可以和 PROCESSLIST 表 JOIN |
trx_query | varchar | 事务正在执行的 SQL 语句 |
trx_operation_state | varchar | 事务当前操作状态 |
trx_tables_in_use | bigint | 当前事务执行的 SQL 中使用的表的个数 |
trx_tables_locked | bigint | 当前执行 SQL 的行锁数量 |
trx_lock_structs | bigint | 事务保留的锁数量 |
trx_lock_memory_bytes | bigint | 事务锁住的内存大小,单位为 BYTES |
trx_rows_locked | bigint | 事务锁住的记录数。包含标记为 DELETED,并且已经保存到磁盘但对事务不可见的行 |
trx_rows_modified | bigint | 事务更改的行数 |
trx_concurrency_tickets | bigint | 事务并发票数 |
trx_isolation_level | varchar | 当前事务的隔离级别 |
trx_unique_checks | int | 否打开唯一性检查的标识 |
trx_foreign_key_checks | int | 是否打开外键检查的标识 |
trx_last_foreign_key_error | varchar | 最后一次的外键错误信息 |
trx_adaptive_hash_latched | int | 自适应散列索引是否被当前事务锁住的标识 |
trx_adaptive_hash_timeout | bigint | 是否立刻放弃为自适应散列索引搜索 LATCH 的标识 |
trx_is_read_only | int | |
trx_autocommit_non_locking | int |
innodb_locks
当前出现的锁
Field | Type | Remark |
---|---|---|
lock_id | varchar | 锁ID |
lock_trx_id | varchar | 拥有锁的事务ID |
lock_mode | varchar | 锁模式 |
lock_type | varchar | 锁类型 |
lock_table | varchar | 被锁的表 |
lock_index | varchar | 被索引的索引 |
lock_space | bigint | 被锁的表空间号 |
lock_page | bigint | 被锁的页号 |
lock_rec | bigint | 被锁的记录号 |
lock_data | varchar | 被锁的数据 |
innodb_lock_waits
锁等待的对应关系
Field | Type | Remark |
---|---|---|
requesting_trx_id | varchar | 请求锁的事务ID |
requested_lock_id | varchar | 请求锁的锁ID |
blocking_trx_id | varchar | 当前拥有锁的事务ID |
blocking_lock_id | varchar | 当前拥有锁的锁ID |