Mysql基础知识-锁查看-Mysql8.0版本

核心表

sys.innodb_lock_waits

performance_schema.events_statements_history

performance_schema.data_locks

performance_schema.data_locks_wait

查看锁信息

performance_schema.data_locks

performance_schema.data_locks_wait

线上mysql版本为8.0.11,对于最近的几个版本越来越像Orale了,有了较为丰富的系统字典,也可以查看系统的等待事件,现在线上出现被锁语句的情况也可以通过数据字典直接查询出来了,在此记录下以供参考。

首先查看系统锁情况,下面这条语句可以看到持有锁的线程以及线程ID,这里需要注意下,session_id也就是show processlist查询出来的链接ID,在这个表里表现为PID,同时该表也记录了trx_id,最后还给出了解决方案也就是如何kill持有锁的进程。

查看当前被锁的语句

SELECT * FROM performance_schema.events_statements_history WHERE thread_id IN(
 
SELECT b.`THREAD_ID` FROM sys.`innodb_lock_waits` AS a , performance_schema.threads AS b
 
WHERE a.waiting_pid = b.`PROCESSLIST_ID`)
 
ORDER BY timer_start ASC;

看持有锁的语句

 
SELECT * FROM performance_schema.events_statements_history WHERE thread_id IN(
 
SELECT b.`THREAD_ID` FROM sys.`innodb_lock_waits` AS a , performance_schema.threads AS b
 
WHERE a.`blocking_pid` = b.`PROCESSLIST_ID`)
 
ORDER BY timer_start ASC;

相关文章:

一次死锁的过程分析和MySQL8.0版本记录了更完整的死锁日志

说明:内容详细,有5和8两个版本

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值