嗨是否有检查其查询锁定在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