2012-04-11 1 views
6

을 나는 ...의 MySQL DB에 2 개 테이블이 그들이 매우 큰 .. 그 약 1 백만 이제 곧 수 500 만 정도어떻게 더 나은 MySQL의 성능을 UPDATE 쿼리를 최적화 할 수

한 구직자 입니다 다른 하나는 내가 복사 또는 둘 모두의 이메일 열이 일치하는 곳 구직자 테이블에 ID를 삽입 할 줌라 사용자 테이블

..

즉 구직자 이메일 = 호세 사용자의 이메일입니다. 어떻게 내가 할 수있는

나는 쿼리 아래 사용하지만

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); 

... 너무 많은 시간을 소요하고 MySQL 서버에 부하를두고 .... 쿼리가 붙어 도착하고 난 항상 최종 최대 mysql을 다시 시작 성능 향상을 위해 위 쿼리를 최적화하십시오. 또한, 일괄 적으로, 즉 시간당 20000 또는 40000 개의 레코드로 실행될 수 있다면 흥미가 있습니다.

+0

당신의 SQL 설명하려고하십시오 http://dev.mysql.com/doc/refman/5.0/en/explain.html을 그리고 난이 시도 didnot 결과 –

답변

6

이 시도 알려주십시오 :

이 간단한 쿼리에 대한
UPDATE 
    jos_jbjobs_jobseeker a 
    INNER JOIN jos_users b ON a.email = b.email 
SET 
    a.user_id = b.id 
3

어떻게?

UPDATE jos_jbjobs_jobseeker jjj 
JOIN jos_users ju 
    ON jjj.email = ju.email 
SET jjj.user_id = ju.id; 
+0

를 게시하지만 난 그것을 시도 할 것이다 .. ..하지만 위의 ansewer가 작동하도록했습니다. – ricardo

+0

내 대답은 정확히 위와 같습니다. 방금 게시했습니다. –

+0

@sony_CO :이 답변은 동일합니다. 그냥 다른 별칭. – Travesty3