IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

updates multiples lents


Sujet :

PHP & Base de données

  1. #1
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut updates multiples lents
    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

  2. #2
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Cela peut provenir de tes indexs. En effet si les indexs permettent d'optimiser les temps d'accès/réponse aux SELECT, la contrepartie c'est qu'ils font baisser les perfs sur les updates (mise à jour des indexs). Il faut faire un compromis selon tes besoins.

  3. #3
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    merci pour ta réponse.

    Je n'ai qu'un seul index (sur la clé primaire, qui en plus n'est pas fait pour accélérer mes SELECT !)

  4. #4
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Si tu n'as qu'un seul index (celui de ta clé primaire), cela s'explique aussi. Tes perfs sont dues à ton manque d'indexs. Essaye par exemple de mettre un index sur chaque critère de ta clause where et regarde ce que ca donne juste pour test. Ensuite à toi de trouver le juste milieu.

Discussions similaires

  1. update multiple dans une meme colonne
    Par debdev dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/01/2006, 21h46
  2. Update multiple [8i]
    Par Endymion222 dans le forum Oracle
    Réponses: 3
    Dernier message: 10/01/2006, 09h46
  3. UPDATE multiples : un seul pris en compte
    Par balti dans le forum Requêtes
    Réponses: 7
    Dernier message: 29/12/2005, 12h02
  4. Update trés lent sur une grosse table
    Par neo.51 dans le forum Oracle
    Réponses: 21
    Dernier message: 14/12/2005, 11h06
  5. Réponses: 3
    Dernier message: 25/01/2005, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo