周期性错误1205:任何查询的锁定等待超时

时间:2016-03-22 23:07:25

标签: mysql

您好我刚开始使用mysql而且我已下载并导入 - 使用MySQL工作台 - 一个包含两个表的数据库,一个(对象)是460 000行和40列大,另一个(资金)是45 000行和15列大。 每次启动与大表交互的查询时,我都会收到1205超时错误。

例如:

UPDATE new_schema.cb_funding_rounds
SET category_code =   
(SELECT category_code    
FROM new_schema.cb_objects    
WHERE new_schema.cb_objects.id = new_schema.cb_funding_rounds.object_id) 
WHERE EXISTS   
(SELECT category_code    FROM new_schema.cb_objects    
WHERE new_schema.cb_objects.id = new_schema.cb_funding_rounds.object_id)

(尝试使用第一个表中各个元素的值填充第二个表中的category_code列,我甚至不知道代码是否正确。)

> delete from new_schema.cb_objects where category_code IS NULL;

我试图使用我发现的一些建议来延迟时间:

SET innodb_lock_wait_timeout = 1000; 
SET global max_allowed_packet=104857600;

但我每次都会得到1205错误。我杀了所有的睡眠过程。 我猜这是因为数据库太大了,任何查询都需要太长时间,但我甚至无法在没有超时的情况下删除数据。

如何解决此问题?什么是正确的查询来完成更新,我只需要这个就可以使用数据库。欢迎任何建议!

0 个答案:

没有答案