Zzozo Un peu, passionément, à la fol | simogeo a écrit :
Code :
- <?php
- $mysqli = new mysqli("localhost", "root", "****", "***_migrate" );
- $result = $mysqli->query("SELECT `DATE` AS `date`, ROLL_NO AS roll, EXPO_NO AS `expo` FROM photocatnew ORDER BY ROW_ID" );
- while ($obj = $result->fetch_object()) {
- set_time_limit(60*2);
-
- $new_query="UPDATE pl_photo SET date='".$obj->date."' WHERE roll_no='".$obj->roll."' AND exposure='".$obj->expo."';";
-
- if($mysqli->query($new_query)) {
- printf("requete :<b>%s</b> .\n<br />", $new_query);
- printf("%d enregistrements modifies.\n<br />", $mysqli->affected_rows);
- } else printf("Erreur : %s\n", $mysqli->error);
- }
- ?>
|
Pour faire des updates sur une table j'execute ce script PHP. Ma table comporte 130 000 records et, l'execution du script prend plusisuers heures .... Je cherche un equivalent MySQL. Avez vous des pistes? merci
|
essaies de rajouter un DISTINCT à tout hasard dans ton premier SELECT pour voir
pas sur que ça améliore bcp les choses mais sont on jamais
C'est pas faisable en une seule requete UPDATE ton truc là ? m'en rappelle plus, mes souvenirs de SQL sont loin
EDIT : As tu pensé à mettre un index sur (roll_no,exposure) dans ta table pl_photo ? Fais gaffe, peux y'avoir des effets secondaires (chute de perfs) dans d'autres requetes ou programmes qui modifient bcp ces deux colonnes par contre, à toi de voir
EDIT2 :
Un truc genre
UPDATE pl_photo
SET pl_photo.date=photocatnew.DATE
FROM photocatnew
WHERE pl_photo.roll_no=photocatnew.ROLL_NO AND pl_photo.exposure=photocatnew.EXPO_NO |
ça irait pas ? vérifies la syntaxe, car c'est très loin tout ça maintenant pour moi Message édité par Zzozo le 24-06-2005 à 06:49:52 ---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
|