Bonjour,

je ne comprends pas pourquoi mes updates sont si lents :
apres l'analyse d'un fichier, je met à jour une table MySQL avec une requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
UPDATE ma_table 
SET champ_dec_1=".mysql_real_escape_string($champ_dec_1).",
champ_dec_2=".mysql_real_escape_string($champ_dec_2).",
champ_int_1=".mysql_real_escape_string($champ_int_1)."
WHERE champ_int_3=".mysql_real_escape_string($champ_int_3)."
AND champ_str_1='".mysql_real_escape_string($champ_str_1)."'
AND champ_int_4=".mysql_real_escape_string($champ_int_4)."
AND champ_int_5=".mysql_real_escape_string($champ_int_5);
il faut plus de 3 minutes pour environ un millier de lignes.
Pour info, il arrive que des lignes ne remplissent pas les conditions et donc aucune mise à jour n'est faite, ce qui est normal (mais je ne sais pas si ca peut perturber le traitement... je ne vois pas pourquoi...)

Si je n'ai que des INSERT à la place (j'ai fait le test pour voir), le traitement ne prend pas 10 secondes.

Et si je fais mon UPDATE en magouillant, c'est à dire, SELECT d'abord pour prendre ce qui existe, DELETE pour faire de la place, et INSERT pour réécrire le tout, ca ne prend qu'une minute.

une piste ??

merci