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

SQL Procédural MySQL Discussion :

Un enorme update


Sujet :

SQL Procédural MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2005
    Messages : 112
    Points : 115
    Points
    115
    Par défaut Un enorme update
    Bonjour à tous,

    J'ai une table de 70000 lignes (environ)
    Je dois effectuer un update global du type ci dessous et ce grace à un fichier qui contient les 70000 update:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    update maTable set champ1=toto,champs2=titi where clef=1
    update maTable set champ1=tutu,champs2=tete where clef=2
    update maTable set champ1=tata,champs2=tyty where clef=3
    ...
    Il y a un index sur ma clef et malgré tout cela me prend un temps fou.
    Existe t'il un moyen de reduire le temps de traitement?

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2003
    Messages : 94
    Points : 116
    Points
    116
    Par défaut
    Tu peux créer une table temporaire ayant la structure de ta table maTable en ne conservant que les colonnes à mettre à jour et l'identifiant que tu as appelé clef.
    Par mysqlimport, tu peux charger très rapidement cette table temporaire
    Pour accéler la mise à jour qui suivra il te faut créer un index sur le champ clef pour la table temporaire et vérifier au passage si un index existe également pour ce champ sur la table cible
    En dernier lieu ne reste plus qu'à faire l'UPDATE de façon ensembliste:

    UPDATE maTable T, tmp_maTable TMP
    set T.champ1 = TMP.champ1,
    T.champ2 = TMP.champ2
    WHERE T.clef = TMP.clef

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2005
    Messages : 112
    Points : 115
    Points
    115
    Par défaut
    Merci de ta reponse je tente le coup de suite...

Discussions similaires

  1. Requête update à partir d'une autre table
    Par amiral thrawn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2024, 11h40
  2. Pb d'update dans une DataGrid
    Par bidson dans le forum XMLRAD
    Réponses: 11
    Dernier message: 27/05/2003, 14h11
  3. [dBase]il y a mieux que la commande sql UPDATE ?
    Par sana72 dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 12/12/2002, 11h59
  4. Réponses: 3
    Dernier message: 10/11/2002, 11h03
  5. update et virgule
    Par Delph dans le forum Bases de données
    Réponses: 8
    Dernier message: 27/08/2002, 14h40

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