mysql 锁情况_MySQL锁情况分析

TIPS

本文基于MySQL 8.0.22

分析锁的三种方式

方式1:

show status like '%innodb_row_lock%';

可查看行锁相关的统计信息

方式2:

SHOW ENGINE INNODB STATUS;

关注结果中 TRANSACTIONS 段落

方式3:利用锁、事务相关的表

MySQL 5.7

MySQL 8.xINFORMATION_SCHEMA.INNODB_TRX 官方文档

INFORMATION_SCHEMA.INNODB_TRX 官方文档

INFORMATION_SCHEMA.INNODB_LOCKS 官方文档

PERFORMANCE.DATA_LOCKS 官方文档

INFORMATION_SCHEMA.INNODB_LOCK_WAITS 官方文档

PERFORMANCE.DATA_LOCKS_WAITS 官方文档

锁相关的表

MySQL主要有三张和锁有关的表,不同的版本,表还不太一样,这里我列出来了:

MySQL 5.7

MySQL 8.x

作用INFORMATION_SCHEMA.INNODB_TRX 官方文档

INFORMATION_SCHEMA.INNODB_TRX 官方文档

当前事务的执行情况

INFORMATION_SCHEMA.INNODB_LOCKS 官方文档

PERFORMANCE.DATA_LOCKS 官方文档

锁相关信息

INFORMATION_SCHEMA.INNODB_LOCK_WAITS 官方文档

PERFORMANCE.DATA_LOCKS_WAITS 官方文档

锁等待信息

INFORMATION_SCHEMA.INNODB_TRX表结构

TRX_ID:InnoDB存储引擎内部唯一的事务ID

TRX_WEIGHT:事务的权重,反映了一个事务修改和锁住的行数。在InnoDB存储引擎中,当发生死锁需要回滚时,InnoDB存储引擎会选择该值最小事务的进行回滚

TRX_STATE:当前事务的状态

TRX_STARTED:事务的开始时间

TRX_REQUESTED_LOCK_ID:当trx_state的状态为LOCK WAIT时,表示当前事务正在等待的锁ID,否则记为NULL。如果想获得更详细的信息,可将该字段和PERFORMANCE.DATA_LOCKS联系起来

TRX_WAIT_STARTED:当trx_state的状态为LOCK WAIT时,表示当前事务开始等待的时间,否则记为NULL

TRX_MYSQL_THREAD_ID:MySQL中的线程ID,SHOW PROCESSLIST显示的结果

TRX_QUERY:事务运行的SQL语句

TRX_OPERATION_STATE:事务当前的操作

TRX_TABLES_IN_USE:事务使用的表的个数

TRX_TABLES_LOCKED:当前SQL语句中拥有行锁的表数目

TRX_LOCK_STRUCTS:事务保留的锁数目

TRX_LOCK_MEMORY_BYTES:内存中此事务的锁占用的内存总大小

TRX_ROWS_LOCKED:此事务大约锁定的行数。这个值可能包含物理存在的、已标记为删除但对事务不可见的记录

TRX_ROWS_MODIFIED:此事务中修改和插入记录的数目

TRX_CONCURRENCY_TICKETS:表示一个事务被swap out之前可以做多少工作,由innodb_concurrency_tickets参数决定

TRX_ISOLATION_LEVEL:当前事务的隔离级别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值