美文网首页
快速定位MySQL全局锁

快速定位MySQL全局锁

作者: W朱珠W | 来源:发表于2020-04-16 17:51 被阅读0次

方法一:利用metadata_locks视图(默认未启用)适用5.7以上的版本

如果上锁前启用了元数据锁的探针,可以比较容易的定位全局锁会话

1.开启元数据锁对应的探针

mysql>update performance_schema.setup_instruments set enabled='yes'where name='wait/lock/metadata/sql/mdl';

模拟上锁:

mysql>flush tables with read lock;

2.查找全局锁对应的thread_id

OBJECT_TYPE=GLOBAL  LOCK_TYPE=SHARED 表示全局锁

select t.processlist_id from performance_schema.threads t join performance_schema.metadata_locks ml on ml.owner_thread_id = t.thread_id where ml.object_type='global' and ml.lock_type='shared';

方法二:利用events_statements_history (5.6默认未启用,5.7默认启用)适用5.6以上版本,该表会记录历史SQL执行记录,如果请求太多,会自动清理早起的信息,有可能将上锁会话的信息清理掉

1.update performance_schema.setup_consumers set enabled = 'yes' where name = 'events_statements_history';

模拟上锁:

mysql>flush tables with read lock;

2.select t.processlist_id from performance_schema.threads t join performance_schema.events_statements_history h on h.thread_id = t.thread_id where h.digest_text like 'FLUSH TABLES%';

----摘自《mysql大智小计》

相关文章

  • 快速定位MySQL全局锁

    方法一:利用metadata_locks视图(默认未启用)适用5.7以上的版本 如果上锁前启用了元数据锁的探针,可...

  • Mysql的锁

    MySql锁的分类 Mysql里的锁大致可以分为全局锁、表级锁和行锁三类。 全局锁 Mysql 增加全局锁的方法:...

  • 又一个mysql面试必问的东西mysql锁

    mysql锁 MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。 全局锁 全局锁就是对整个数据库实例加锁。M...

  • MYSQL(03)-锁

    MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类 全局锁 全局锁就是对整个数据库实例加锁,mysql提供了...

  • 5、全局锁和表锁

    根据加锁范围:MySQL里面的锁可以分为:全局锁、表级锁、行级锁 全局锁: 对整个数据库实例加锁。 MySQL提供...

  • mysql学习day3

    mysql的锁根据加锁范围:MySQL里面的锁可以分为:全局锁、表级锁、行级一、全局锁:对整个数据库实例加锁。My...

  • MySQL锁+案例分析

    1. 概念梳理 根据加锁的范围,MySQL里面的锁大致可以分为:全局锁、表级锁、行锁三类。 1.1. 全局锁 全局...

  • MySQL 锁

    根据加锁的范围,MySQL里面的锁大致可以分亨全局锁、表锁和行锁。 全局锁 全局锁就是对整个数据库实例加锁。MyS...

  • MySQL锁

    MySQL锁分类 全局锁 表级锁 行锁 间隙锁 next-key lock 全局锁 作用范围:对整个数据库实例加锁...

  • MySQL系统学习(06):MySQL的全局锁、表级锁以及行锁

    原文: MySQL系统学习(06):MySQL的全局锁、表级锁以及行锁[http://www.wangqi94.c...

网友评论

      本文标题:快速定位MySQL全局锁

      本文链接:https://www.haomeiwen.com/subject/zxedvhtx.html