6

mySQL dbに2つのテーブルがあります...それらは非常に大きいです..現在約100万で、すぐに500万程度になります

1つは求職者で、もう1つはjoomlaユーザーテーブルです

両方のメール列が一致する求職者テーブルに ID をコピーまたは挿入したい..

つまり、求職者の電子メール = jos ユーザーの電子メールです。

以下のクエリを使用しましたが、時間がかかりすぎて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 に答える