phpMyAdmin的冻结上查询,DB过大?(Phpmyadmin freezes on query

2019-06-23 14:29发布

我有两个表(一个33K行,另一个7K行)。 我想比较两个表,并删除其中两个ID的不匹配的行。 但是,当我发过查询,冻结phpMyAdmin的。 可以在表过大?

SELECT * FROM likes LEFT OUTER JOIN uploads on likes.upload_id = uploads.upload_id WHERE uploads.upload_id IS NULL 

我知道数据库是为了处理数百万数据的,所以我不知道在哪里的错误所在。

最好的问候,马蒂亚斯

Answer 1:

我会做一个解释,所以你可以看到的MySQL做什么。 这将使许多行是如何使用的有什么好迹象。

EXPLAIN SELECT * FROM likes LEFT OUTER JOIN uploads on likes.upload_id = uploads.upload_id WHERE uploads.upload_id IS NULL

你也可以使用其他浏览器或其他会话使用SHOW PROCESSLIST查看查询是如何执行。



Answer 2:

表可能不是太大,但如果剧本需要花很长时间才能完成的phpMyAdmin的查询超时可能是一个问题。 试着更改超时或根本不使用phpMyAdmin。 看看你是否能够这样使用服务器(或其他工具)命令行查询。

也可以看看:

  • 如何导入在phpmyadmin的一个非常大的查询?
  • MySQL的phpMyAdmin的超时问题


Answer 3:

是否冻结意味着它的工作,但从来没有更新/从来没有“完成”的任务?

如果是这样,
我有过类似的事,发现他们已经由于其在列多个索引,例如列有一个主索引和列命名的指数,所以检查你的索引



Answer 4:

我有时运行大型进口“查询”,可以采取几个小时来处理。 (我勾去掉“部分导入 - >允许进口的中断......”。)

phpMyAdmin的也不会在我的开始查询浏览器的响应,即使我尝试重新加载页面,但如果我去一个浏览器另一台机器上(我假设)不同的IP地址phpMyAdmin的响应罚款。

在其他浏览器中我然后发出SQL命令SHOW FULL PROCESSLIST以监控并杀死长时间运行的查询如果需要的话。



文章来源: Phpmyadmin freezes on query, db too big?