在mysql查询中获取锁定表

Sha*_*500 17 mysql

有没有办法通过MySQL查询来获取锁定的表?我有一个C#线程应用程序正在运行,并且有很多表被锁定在应用程序中.

我需要查看锁定的表并分析可能锁定它的代码.

Cri*_*ian 47

使用:

SHOW OPEN TABLES
Run Code Online (Sandbox Code Playgroud)

检查列In_use是否大于0.在这种情况下,表被锁定.

例子

  • 锁定表列表:

    show open tables WHERE In_use > 0

  • 检查表是否tb_employees已锁定:

    show open tables WHERE Table LIKE 'tb_employees' AND In_use > 0

官方文档:

In_use

表的锁表或锁请求的数量.例如,如果一个客户端使用LOCK TABLE t1 WRITE获取表的锁,则In_use将为1.如果另一个客户端在表保持锁定时发出LOCK TABLE t1 WRITE,则客户端将阻止等待锁,但锁定请求导致In_use为2.如果计数为零,则表已打开但当前未使用.In_use也因HANDLER ... OPEN语句而增加,并由HANDLER ... CLOSE减少.