Bonsoir,
J'ai un problème sur une sous requête un peu trop consommatrice (timeout après plus de 100 minutes je crois) pour mon petit serveur que je n'arrive pas à réécrire en jointure.
la voici :
Je ne sais pas transformer un UPDATE en Jointure (j'ai vraiment du mal avec les jointures).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UPDATE `TABLE0` SET `CP1` = '0' , WHERE `EMAIL` NOT IN ( SELECT `Email` FROM `mails` WHERE DATEDIFF(CURDATE(), `insertion`) > 7 )
Etant naze en mysql et ne pouvant pas faire de test avant 3h du matin je me suis dit que je pourrais essayer de l'optimiser à mort !
Est ce que le code suivant est plus "optimisé" à votre avis ? (les 2 tables contiennent chacune plus de 700 000 tuples , et email est la clef primaire sur 255 caractère dans les deux tables)
Merci d'avance pour vos conseils !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 UPDATE TABLE0, `mails` SET `TABLE0`.`CP1` = '0' WHERE `TABLE0`.`EMAIL` <> `mails`.`Email` AND DATEDIFF(CURDATE(), `mails`.`insertion`) > 7
Partager