随笔 - 171  文章 - 0  评论 - 0  阅读 - 62466

Rcord Lock、Gap Lock、Next-key Lock(待补充)

查询mysql加锁情况

在MySQL中,可以通过SHOW ENGINE INNODB STATUS查看加锁情况。

需要通过下列配置才能从SHOW ENGINE INNODB STATUS 中看到锁的状态。

SET GLOBAL innodb_status_output=ON;
SET GLOBAL innodb_status_output_locks=ON;

也可以通过查询INFORMATION_SCHEMA.INNODB_LOCKSINFORMATION_SCHEMA.INNODB_LOCK_WAITS表来查看当前的加锁情况。

以下是查询加锁情况的示例SQL语句:

复制代码
SELECT
r.trx_id waiting_trx_id,
r.trx_mysql_thread_id waiting_thread,
r.trx_query waiting_query,
b.trx_id blocking_trx_id,
b.trx_mysql_thread_id blocking_thread,
b.trx_query blocking_query
FROM
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 r ON
r.trx_id = w.requesting_trx_id;
复制代码

这个查询将列出当前等待锁的事务(waiting_trx)和持有锁的事务(blocking_trx)的信息,包括事务ID、线程ID和正在执行的查询。

请注意,查询INFORMATION_SCHEMA.INNODB_LOCKSINFORMATION_SCHEMA.INNODB_LOCK_WAITS需要具备相应的权限,并且这些表的信息是从InnoDB引擎获取的,因此只代表当前实例的加锁情况,不能显示跨实例的锁竞争情况。

Rcord Lock、Gap Lock、Next-key Lock、Next-key Lock

详解这篇文章

 
posted on   zhengbiyu  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示