2012-04-11 2 views
6

J'ai 2 tables de base de données mysql ... ils sont très grandes .. ses environ 1 million maintenant et bientôt 5 millions ou sicomment optimiser requête Mise à jour pour améliorer les performances de MySQL

est un demandeur d'emploi autre utilisateurs joomla Table

Je veux copier ou insérer ID dans la table où la colonne demandeur d'emploi e-mail des deux matchs ..

email = par exemple demandeur d'emploi email utilisateurs jos.

J'utilisé ci-dessous requête, mais il prend trop de temps et met lourde charge sur le serveur MySQL .... les requêtes se coince et je bout en toujours redémarrer 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); 

comment puis-je optimiser la requête ci-dessus pour obtenir de meilleures performances. En outre, je serais intéressé si elle peut être exécutée en lots par exemple 20000 ou 40000 enregistrements à la fois.

S'il vous plaît conseiller

+0

S'il vous plaît essayer de EXPLIQUER SQL: http://dev.mysql.com/doc/refman/5.0/en/explain.html et afficher le résultat –

Répondre

6

Essayez ceci:

UPDATE 
    jos_jbjobs_jobseeker a 
    INNER JOIN jos_users b ON a.email = b.email 
SET 
    a.user_id = b.id 
3

Que diriez-vous cette simple question?

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

i didnot essayer, mais je vais essayer .. ..mais j'ai eu l'ansewer ci-dessus fonctionnant. – ricardo

+0

Ma réponse est exactement la même que ci-dessus. Je l'ai posté un peu plus tard. –

+0

@sony_CO: Cette réponse est la même. Juste des alias différents. – Travesty3

Questions connexes