首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示mysql锁?

问如何显示mysql锁?
EN

Server Fault用户
提问于 2009-07-06 10:13:04
回答 8查看 336.1K关注 0票数 91

是否有任何方式显示mysql数据库中所有活动的锁?

EN

回答 8

Server Fault用户

回答已采纳

发布于 2009-07-06 10:47:03

有关InnoDB表和注意事项,请参阅Marko的链接。

对于MyISAM,没有一个非常简单的解决方案“这是令人反感的查询”解决方案。您应该始终从处理列表开始。但是,请确保包含full关键字,这样就不会截断打印出来的查询:

代码语言:javascript
复制
SHOW FULL PROCESSLIST;

这将显示所有当前进程、它们的SQL查询和状态的列表。现在,通常情况下,如果单个查询导致许多其他查询锁定,那么应该很容易识别。受影响的查询将具有Locked状态,而不正常的查询将独自等待,可能会等待一些密集的内容,比如临时表。

如果这并不明显,那么您将不得不使用您的SQL扣减能力来确定哪些违规SQL可能是您的问题的原因。

票数 64
EN

Server Fault用户

发布于 2014-06-05 07:42:58

如果您使用InnoDB,并且需要检查正在运行的查询,我建议您

show engine innodb status;

就像Marko的链接中提到的。这将为您提供锁定查询、它锁定了多少行/表等等。

使用SHOW PROCESSLIST的问题是,除非其他查询排队,否则不会看到锁。

票数 51
EN

Server Fault用户

发布于 2013-05-09 04:55:44

试试SHOW OPEN TABLES:

代码语言:javascript
复制
show open tables where In_Use > 0 ;
票数 41
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/36260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档