我正在创建和测试一个mysql连接查询,但每次都会导致数据库表锁定并使网站挂起。然后我必须打电话给主机,让他们杀死被锁定的查询。 我能否从phpmyadmin中进行此操作,以便在调整脚本以使其正常工作时不必打扰他们? 谢谢任何回复。
您可以在phpMyAdmin的首页上找到"Processes"链接来执行此操作。
您还可以运行命令SHOW PROCESSLIST
(或者SHOW FULL PROCESSLIST
),这将显示您可以操纵的所有查询(即您自己的查询)。每个查询都会有一个标识符。您可以向任何一个标识符发出KILL
命令以终止该查询。
另外,您应该考虑使用EXPLAIN
测试您的查询。
Id User Host/IP DB Time Cmd State Query
-- ---- ------- -- ---- --- ----- ----------
我不知道phpMyAdmin,但免费的“mysql工具”包含一个名为 MySql管理员的应用程序,可以让您做到这一点。它会显示当前正在运行的查询,并提供一个终止线程按钮(我相信这在服务器健康选项卡中)。
Mysql GUI工具/ Mysql Workbench比phpMyAdmin要好得多。如果您正在本地运行数据库或具有ssh访问权限,则没有理由使用phpMyAdmin。
我不记得在phpmyadmin中有一种方法可以这样做。您可以尝试在本地测试副本数据库上测试查询,而不是在线上进行,以获得更好的吞吐量,直到它不再锁定。