检测锁定表(由LOCK TABLE锁定)
问题描述:
有没有办法检测MySQL中的锁定表?我的意思是由LOCK TABLE table WRITE/READ
命令锁定的表。检测锁定表(由LOCK TABLE锁定)
(注意,兴趣与检测获得的GET_LOCK
应阅读Show all current locks from get_lock,而不是命名为锁的读者。)
答
你不能对非指定的锁!
更多信息: http://forums.mysql.com/read.php?21,222363,223774#msg-223774
除非你先用一个咨询锁。您可能还想考虑使用INSERT DELAYED。
但是,您可以使用SHOW OPEN TABLES
来显示每个表的状态。
还有像“MetaLock”这样的可怕的事情,我很高兴你没有遇到这种情况。
答
使用SHOW OPEN TABLES
: http://dev.mysql.com/doc/refman/5.1/en/show-open-tables.html
你可以做这样的事情
SHOW OPEN TABLES WHERE `Table` LIKE '%[TABLE_NAME]%' AND `Database` LIKE '[DBNAME]' AND In_use > 0;
检查数据库中的任何锁定表。
答
最简单的方法是:
SHOW OPEN TABLES WHERE In_use > 0
你只能得到当前数据库的锁定表。
很好,但是MyISAM被锁定了吗?欢呼声 – Marcin 2010-03-23 13:56:48
对不起,帮不了你。 – 2010-03-23 15:02:12