6

我在 mySQL 数据库中有 2 个表......它们非常大.. 现在大约 100 万,很快将达到 500 万左右

一个是求职者另一个是joomla用户表

我想将 ID 复制或插入到两个电子邮件列匹配的求职者表中。

即求职者电子邮件=乔斯用户电子邮件。

我使用了下面的查询,但它花费了太多时间并且给 mysql 服务器带来了沉重的负载 ....查询卡住了,我总是最终重新启动 mysql ...

UPDATE  `jos_jbjobs_jobseeker` 
SET user_id =   ( SELECT jos_users.id
FROM jos_users
WHERE jos_users.email =  jos_jbjobs_jobseeker.email)
WHERE EXISTS
  ( SELECT jos_users.id
    FROM jos_users
    WHERE jos_users.email =  jos_jbjobs_jobseeker.email);

如何优化上述查询以获得更好的性能。此外,如果它可以分批执行,即一次 20000 或 40000 条记录,我会感兴趣。

请指教

4

2 回答 2

6

试试这个:

UPDATE
    jos_jbjobs_jobseeker a
    INNER JOIN jos_users b ON a.email = b.email
SET
    a.user_id = b.id
于 2012-04-11T14:12:56.530 回答
3

这个简单的查询怎么样?

UPDATE jos_jbjobs_jobseeker jjj
JOIN jos_users ju
  ON jjj.email = ju.email
SET jjj.user_id = ju.id;
于 2012-04-11T14:15:29.077 回答