MySQL查询锁定表(mysql query locking tables)

2019-10-20 22:28发布

嗨是否有检查其查询锁定在MySQL表的方法吗? 我们可以找出哪些表被锁定但其很难找到被锁定表的查询。 我们试图SHOW PROCESSLIST,显示引擎InnoDB的地位,也看了一些表格等INNODB_TRX和INNODB_LOCKS。 有没有可以指向是什么原因造成的锁定特定的方法是什么?

Answer 1:

如果您有MySQL服务的root访问权限:

#mysql -uroot
#mysql> SET global log_output = 'table';
#mysql> SET global general_log = 1;

重装网站或做一些锁定表

#mysql> SET global general_log = 0;

而接下来检查表mysql.general_log

如果你没有root权限在设置mysql服务root/lib/Varien/Db/Adapter/Pdo/Mysql.php

protected $_debug = true;
protected $_logAllQueries = true;

重新加载页面后,你会得到的查询日志中var/debug/pdo_mysql.log



Answer 2:

我可能失去了一些东西,但“SHOW进程列表”并告诉你,真实锁定表的查询,虽然你不显示完整的查询。

如果你想看到完整的查询,则必须执行“SHOW FULL进程列表”。

如果这并不能帮助您,请提供更多的信息(或者也许我的英语需要一些修饰,不明白的问题)。

编辑:一些语法



文章来源: mysql query locking tables