innodb 死锁分析之相关表结构说明

Posted 梦灬颜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了innodb 死锁分析之相关表结构说明相关的知识,希望对你有一定的参考价值。

表INNODB_TRX的结构说明

字段名 说明
trx_id InnoDB存储引擎内部唯一的事务ID
trx_state 当前事务的状态
trx_started 事务的开始时间
trx_requested_lock_id

等待事务的锁ID,如trx_state的状态为LOCK WAIT,那么该值代表当前的事务等待之前事务

占用锁资源的ID。若trx_state不是LOCK WAIT, 则该值为NULL

trx_wait_started  事务等待开始的时间
trx_weight

事务的权重,反映了一个事务修改和锁定的行数。在InnoDB存储引擎中,当发生死锁需要回滚时,

InnoDB存储引擎会选择该值最小的进行回滚 

trx_mysql_thread_id MySQL中的线程ID,SHOW PROCESSLIST 显示的结果 
trx_query 事务运行的语句 

表INNODB_LOCKS的结构

字段名 说明
lock_id 锁的ID
lock_trx_id 事务ID
lock_mode 锁的模式
lock_type 锁的类型,表锁还是行锁
lock_table 要加锁的表
lock_index 锁住的索引
lock_space 锁对象的space id
lock_page 事务锁定页的数量。若是表锁,则该值为NULL
lock_rec 事务锁定行的数量。若是表锁,则该值为NULL
lock_data 事务锁定记录的主键值,若是表锁,则该值为NULL

 表INNODB_LOCK_WAITS的结构

字段名 说明
requesting_trx_id 申请锁资源的事务ID
requesting_lock_id 申请的锁的ID
blocking_trx_id 阻塞的事务ID
blocking_lock_id 阻塞的锁的ID

以上是关于innodb 死锁分析之相关表结构说明的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Innodb表导致死锁日志情况分析与归纳

MySQL Innodb表导致死锁日志情况分析与归纳

mysql 死锁:如何解决mysql死锁

Innodb 和 MyIsam 两种存储引擎的文件存储结构

MySQL InnoDB的存储结构总结

为啥这是一个死锁(MySQL 使用 InnoDB)