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 |