我必须根据电子邮件更新表格中的字段(250 000条记录),其中包含另一个表格中的字段值(10 000 000条记录)...
我试过了: UPDATE table1 t1,table2 t2 SET t1.country = t2.country 在哪里t1.email = t2.email
但我永远得到了“正在执行查询”。
我应该使用什么查询?
谢谢
答案 0 :(得分:2)
这是一个使用JOIN
的好机会。
UPDATE table1 as t1
JOIN table2 t2 ON t1.email = t2.email
SET t1.country = t2.country
您的查询仍需要一段时间才能处理,但它应该会大幅减少时间。
答案 1 :(得分:0)
我没有在您的查询中看到明显的错误(在这种情况下数据库会产生错误)。因此,我们正在考虑的问题是加快更新的执行速度。您的两个电子邮件字段中有一个已编入索引吗如果没有,你可以添加一个索引然后再试一次吗?例如。 ALTER TABLE table2 ADD INDEX(电子邮件)