Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1314 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Equivalent MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Equivalent MySQL

n°1129392
simogeo
j'ai jamais tué de chats, ...
Posté le 24-06-2005 à 06:25:57  profilanswer
 

Code :
  1. <?php
  2. $mysqli = new mysqli("localhost", "root", "****", "***_migrate" );
  3. $result = $mysqli->query("SELECT `DATE` AS `date`, ROLL_NO  AS roll, EXPO_NO AS `expo` FROM photocatnew ORDER BY ROW_ID" );
  4. while ($obj = $result->fetch_object()) {
  5. set_time_limit(60*2);
  6.      
  7.        $new_query="UPDATE pl_photo SET date='".$obj->date."' WHERE roll_no='".$obj->roll."' AND exposure='".$obj->expo."';";
  8.      
  9.        if($mysqli->query($new_query)) {
  10.  printf("requete :<b>%s</b> .\n<br />", $new_query);
  11.  printf("%d enregistrements modifies.\n<br />", $mysqli->affected_rows);
  12.        } else printf("Erreur : %s\n", $mysqli->error);
  13. }
  14. ?>


 
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 ....  :sweat:  
Je cherche un equivalent MySQL. Avez vous des pistes? merci :)


Message édité par simogeo le 24-06-2005 à 06:26:32
mood
Publicité
Posté le 24-06-2005 à 06:25:57  profilanswer
 

n°1129394
Zzozo
Un peu, passionément, à la fol
Posté le 24-06-2005 à 06:40:40  profilanswer
 

simogeo a écrit :

Code :
  1. <?php
  2. $mysqli = new mysqli("localhost", "root", "****", "***_migrate" );
  3. $result = $mysqli->query("SELECT `DATE` AS `date`, ROLL_NO  AS roll, EXPO_NO AS `expo` FROM photocatnew ORDER BY ROW_ID" );
  4. while ($obj = $result->fetch_object()) {
  5. set_time_limit(60*2);
  6.      
  7.        $new_query="UPDATE pl_photo SET date='".$obj->date."' WHERE roll_no='".$obj->roll."' AND exposure='".$obj->expo."';";
  8.      
  9.        if($mysqli->query($new_query)) {
  10.  printf("requete :<b>%s</b> .\n<br />", $new_query);
  11.  printf("%d enregistrements modifies.\n<br />", $mysqli->affected_rows);
  12.        } else printf("Erreur : %s\n", $mysqli->error);
  13. }
  14. ?>


 
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 ....  :sweat:  
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  [:spamafote]
C'est pas faisable en une seule requete UPDATE ton truc là ? m'en rappelle plus, mes souvenirs de SQL sont loin :o
 
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 :o
 
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 ? :o    vérifies la syntaxe, car c'est très loin tout ça maintenant pour moi   :sweat:


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
n°1129396
simogeo
j'ai jamais tué de chats, ...
Posté le 24-06-2005 à 06:47:00  profilanswer
 

yop Zzozo
Merci de participation.
 
Le distinct ne changerai rien. Cette premiere requete s'effectue tres tres vite. C'est les UPDATE qui sont plus long
Et les index accelerent les SELECT mais ralentissent INSERT et UPDATE .. donc ce n'est pas une bonne idee.
 
merci quand meme  :D

n°1129397
Zzozo
Un peu, passionément, à la fol
Posté le 24-06-2005 à 06:50:43  profilanswer
 

simogeo a écrit :

yop Zzozo
Merci de participation.
 
Le distinct ne changerai rien. Cette premiere requete s'effectue tres tres vite. C'est les UPDATE qui sont plus long
Et les index accelerent les SELECT mais ralentissent INSERT et UPDATE .. donc ce n'est pas une bonne idee.
 
merci quand meme  :D


Regardes au dessus de nouveau  :o


---------------
« 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
n°1129398
Zzozo
Un peu, passionément, à la fol
Posté le 24-06-2005 à 06:52:36  profilanswer
 

simogeo a écrit :

yop Zzozo
Merci de participation.
 
Le distinct ne changerai rien. Cette premiere requete s'effectue tres tres vite. C'est les UPDATE qui sont plus long
Et les index accelerent les SELECT mais ralentissent INSERT et UPDATE .. donc ce n'est pas une bonne idee.
 
merci quand meme  :D


la table à 130 000 enregistrements, c'est celle que tu updates ? :o
si oui, vérifies que tu te tapes pas un tablescan à chaque update sinon ca va pas aller vite, c'est clair :D


---------------
« 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
n°1129399
Zzozo
Un peu, passionément, à la fol
Posté le 24-06-2005 à 07:08:33  profilanswer
 

Tiens, un peu de litérrature [:dao]
http://dev.mysql.com/doc/mysql/en/ [...] -scan.html
Penses à regarder tous les topics sur la gauche de la page, ils peuvent t'intéresser [:dao]
 
Allez, bonne journée et amuses toi bien surtout [:klem3i1]


---------------
« 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
n°1129400
simogeo
j'ai jamais tué de chats, ...
Posté le 24-06-2005 à 07:11:30  profilanswer
 

Zzozo a écrit :

la table à 130 000 enregistrements, c'est celle que tu updates ? :o
si oui, vérifies que tu te tapes pas un tablescan à chaque update sinon ca va pas aller vite, c'est clair :D


oui.
Comment je peux savoir s'il fait un tablescan ? je ne peux pas faire de EXPLAIN sur un UPDATE :/

n°1129401
simogeo
j'ai jamais tué de chats, ...
Posté le 24-06-2005 à 07:22:01  profilanswer
 

Code :
  1. UPDATE `pl_photo`, `photocatnew` SET `pl_photo`.`date`=`photocatnew`.`DATE`
  2. WHERE `pl_photo`.`roll_no`=`photocatnew`.`ROLL_NO` AND `pl_photo`.`exposure`=`photocatnew`.`EXPO_NO`


 
[:jar jar]
 
 
le dauphin saute et tressaute ...... je ne sais pas combien de temps ca va prendre .. mais j'espere que ca va etre plus rapide que via mon precedent script [:dawa]
 
merci zzozo  [:john keats]

n°1129402
Zzozo
Un peu, passionément, à la fol
Posté le 24-06-2005 à 07:23:13  profilanswer
 

simogeo a écrit :

oui.
Comment je peux savoir s'il fait un tablescan ? je ne peux pas faire de EXPLAIN sur un UPDATE :/


Nan mais tu peux le faire sur le SELECT équivalent :o
dans le SELECT tu vas chercher la/les colonnes que tu modifies dans le SET et tu mets la même clause WHERE que celle de ton UPDATE  [:dao]


Message édité par Zzozo le 24-06-2005 à 07:23:47

---------------
« 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
n°1129403
Zzozo
Un peu, passionément, à la fol
Posté le 24-06-2005 à 07:24:57  profilanswer
 

simogeo a écrit :

Code :
  1. UPDATE `pl_photo`, `photocatnew` SET `pl_photo`.`date`=`photocatnew`.`DATE`
  2. WHERE `pl_photo`.`roll_no`=`photocatnew`.`ROLL_NO` AND `pl_photo`.`exposure`=`photocatnew`.`EXPO_NO`


 
[:jar jar]
 
 
le dauphin saute et tressaute ...... je ne sais pas combien de temps ca va prendre .. mais j'espere que ca va etre plus rapide que via mon precedent script [:dawa]
 
merci zzozo  [:john keats]


Ouais  ... y'a pas marqué Flipper sur mon front, ni Oum  d'ailleurs  [:dao]


Message édité par Zzozo le 24-06-2005 à 07:25:21

---------------
« 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
mood
Publicité
Posté le 24-06-2005 à 07:24:57  profilanswer
 

n°1129407
simogeo
j'ai jamais tué de chats, ...
Posté le 24-06-2005 à 07:35:43  profilanswer
 

je parlais du dauphin de mysql  [:newidk]  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Equivalent MySQL

 

Sujets relatifs
Equivalent TOP en MySQL?Ordonner le résultat d'une requette MySQL sur 2 colonnes
[MySQL] - InterclassementQuel est l'equivalent d'un Update via 2 tables sous MySQL?
"mysql_free_result" quel est son equivalent avec sqlite ?[SGBD] Equivalent de rownum avec MySQL ?
Equivalent de "mysql_insert_id" pour MS SQLserverDB2 : équivalent au rowcount d'Oracle ou Limit de MySQL ?
[mssql] Y'a t'il un equivalent a l'instruction LIMIT de Mysql ?Equivalent du LIMIT de mySQL sur SQL Server
Plus de sujets relatifs à : Equivalent MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR