Bonjour,
Je cherche a mettre a jour un champ d'une table d'environ 50000 entrées, le champ est lu, modifié par php puis mis a jour, j'ai essayé plusieurs choses mais ca ne va pas, mon algo ressemble a ca:
- j'ai d'abord essayé le plus évident :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 pour chaque ligne de la table: acces au champ modification construction de la requete update execution de la requete update
Mais le serveur coupe la connexion, trop lourd je suppose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 update table set data = when uid=1 then $valeur1 when uid=2 then $valeur2 ... 50 000 fois... end
- j'ai découpé en requêtes de 500 lignes, cela fonctionne mais que pour les 500 premières, les autres champs data sont fixés a null, ce qui veut dire que toutes les lignes sont parcourues, pas bon.
- avec le mot clés else que j'ai trouvé après j'en suis à :
Ca fonctionne mais le script met 10min a se terminer,c'est vraiment très long, donc je me demande si a chaque requête de 500 lignes toutes les lignes ne seraient pas recopiées, même si c'est pour réécrire la même chose 99% du temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 update table set data = when uid=1 then $valeur1 when uid=2 then $valeur2 ... 500 fois... else data end
Quelqu'un aurai-t-il une idée pour accélérer la chose ou alléger les requêtes ?
Merci beaucoup.
Partager