是否有任何方式显示mysql数据库中所有活动的锁?
发布于 2009-07-06 10:47:03
有关InnoDB表和注意事项,请参阅Marko的链接。
对于MyISAM,没有一个非常简单的解决方案“这是令人反感的查询”解决方案。您应该始终从处理列表开始。但是,请确保包含full关键字,这样就不会截断打印出来的查询:
SHOW FULL PROCESSLIST;这将显示所有当前进程、它们的SQL查询和状态的列表。现在,通常情况下,如果单个查询导致许多其他查询锁定,那么应该很容易识别。受影响的查询将具有Locked状态,而不正常的查询将独自等待,可能会等待一些密集的内容,比如临时表。
如果这并不明显,那么您将不得不使用您的SQL扣减能力来确定哪些违规SQL可能是您的问题的原因。
发布于 2014-06-05 07:42:58
如果您使用InnoDB,并且需要检查正在运行的查询,我建议您
show engine innodb status;
就像Marko的链接中提到的。这将为您提供锁定查询、它锁定了多少行/表等等。
使用SHOW PROCESSLIST的问题是,除非其他查询排队,否则不会看到锁。
发布于 2013-05-09 04:55:44
show open tables where In_Use > 0 ;https://serverfault.com/questions/36260
复制相似问题