MySQL如何查看当前数据库锁请求
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下MySQL如何查看当前数据库锁请求,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL版本:5.6.
千家信息网最后更新 2026年11月01日MySQL如何查看当前数据库锁请求
可以根据这三张表进行联合查询,得到更直观更清晰的结果,可以参考如下SQL(可根据自己的分析习惯适进行调整)
小编给大家分享一下MySQL如何查看当前数据库锁请求,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
MySQL版本:5.6.21
MySQL提供了查看当前数据库锁请求的三种方法:
1. show full processlist命令
观察state和info列
2. show engine innodb status\G 命令
查看 TRANSACTIONS 部分和 LATEST DETECTED DEADLOCK 两个部分
3. information_shcema下的三张表(通过这三张表可以更新监控当前事物并且分析存在的锁问题)
-- innodb_trx (
打印innodb内核中的当前活跃(ACTIVE)事务)
-- innodb_locks
( 打印当前状态产生的innodb锁 仅在有锁等待时打印)
-- innodb_lock_waits
(打印当前状态产生的innodb锁等待 仅在有锁等待时打印)
1) innodb_trx表结构说明 (摘取最能说明问题的8个字段)
| 字段名 | 说明 |
| trx_id | innodb存储引擎内部唯一的事物ID |
| trx_state | 当前事物状态(running和lock wait两种状态) |
| 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 | 事物运行的SQL语句 |
2)innodb_locks表结构说明
| 字段名 | 说明 |
| lock_id | 锁的ID |
| lock_trx_id | 事物的ID |
| lock_mode | 锁的模式(S锁与X锁两种模式) |
| lock_type | 锁的类型 表锁还是行锁(RECORD) |
| lock_table | 要加锁的表 |
| lock_index | 锁住的索引 |
| lock_space | 锁住对象的space id |
| lock_page | 事物锁定页的数量,若是表锁则该值为NULL |
| lock_rec | 事物锁定行的数量,若是表锁则该值为NULL |
| lock_data | 事物锁定记录主键值,若是表锁则该值为NULL(此选项不可信) |
3)innodb_lock_waits表结构说明
| 字段名 | 说明 |
| requesting_trx_id | 申请锁资源的事物ID |
| requested_lock_id | 申请的锁的ID |
| blocking_trx_id | 阻塞其他事物的事物ID |
| blocking_lock_id | 阻塞其他锁的锁ID |
可以根据这三张表进行联合查询,得到更直观更清晰的结果,可以参考如下SQL(可根据自己的分析习惯适进行调整)
selectr.trx_isolation_level,r.trx_id waiting_trx_id,r.trx_mysql_thread_id waiting_trx_thread,r.trx_state waiting_trx_state,lr.lock_mode waiting_trx_lock_mode,lr.lock_type waiting_trx_lock_type,lr.lock_table waiting_trx_lock_table,lr.lock_index waiting_trx_lock_index,r.trx_query waiting_trx_query,b.trx_id blocking_trx_id,b.trx_mysql_thread_id blocking_trx_thread,b.trx_state blocking_trx_state,lb.lock_mode blocking_trx_lock_mode,lb.lock_type blocking_trx_lock_type,lb.lock_table blocking_trx_lock_table,lb.lock_index blocking_trx_lock_index,b.trx_query blocking_queryfrom information_schema.innodb_lock_waits w inner join information_schema.innodb_trx b on b.trx_id=w.blocking_trx_id inner join information_schema.innodb_trx ron r.trx_id=w.requesting_trx_id inner join information_schema.innodb_locks lbon lb.lock_trx_id=w.blocking_trx_idinner join information_schema.innodb_locks lron lr.lock_trx_id=w.requesting_trx_id\G;*************************** 1. row *************************** trx_isolation_level: REPEATABLE READ waiting_trx_id: 2900247 waiting_trx_thread: 1070 waiting_trx_state: LOCK WAIT waiting_trx_lock_mode: S waiting_trx_lock_type: RECORD waiting_trx_lock_table: `jiang_test`.`test` waiting_trx_lock_index: PRIMARY waiting_trx_query: select * from test where id=3 lock in share mode blocking_trx_id: 2900241 blocking_trx_thread: 1137 blocking_trx_state: RUNNING blocking_trx_lock_mode: X blocking_trx_lock_type: RECORDblocking_trx_lock_table: `jiang_test`.`test`blocking_trx_lock_index: PRIMARY blocking_query: NULL1 row in set (0.01 sec)
以上是"MySQL如何查看当前数据库锁请求"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
事物
状态
字段
数据
数据库
引擎
篇文章
结构
若是
存储
内容
命令
数量
时间
模式
结果
资源
部分
问题
分析
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司
广州淘业互联网络科技
广州百单互联网科技有限公司
互联网科技开发公司
上海互联网科技有限公司
广州宏创互联网科技
美国互联网黑科技
互联网科技生活的内容
恒生互联网科技指数跳水
链环科技传统企业怎么转型互联网
亳州好赞互联网科技有限公司
佛山市翊博互联网络科技有限公司
互联网行业科技股
黑科技 体验场景 互联网大会
风投北京互联网科技
互联网科技新闻
西安左小互联网科技有限公司
众联互联网络科技
北京品多多互联网科技有限公司
互联网 科技节活动 微视频大赛
湖南永感互联网科技有限公司
科技赋能下的互联网金融
互联网巨头反垄断金融科技
济南华为互联网科技产业总部基地
内蒙古九一互联网科技
互联网科技和法律行业
科技互联网行业投资研究
陕西九四连强互联网科技有限公司
众联互联网络科技
互联网科技快速发展优美句子