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

Requêtes MySQL Discussion :

les trigger sont (a)synchrone ?


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par défaut les trigger sont (a)synchrone ?
    Bonjour à tous,

    je coince sur un problème de performance au niveau des TRIGGER, en effet je voudrai savoir s'ils sont exécuté d'une manière synchrone ou asynchrone.

    C'est à dire :

    j'ai 3 tables : table1, table2 et table3 avec un TRIGGER sur ma table2 ON INSERT

    je fais 10.000 INSERT dans ma table 2 :
    INSERT INTO table2 (colonne) SELECT colone FROM table1;

    le TRIGGER va, pour CHAQUE ligne ajouté, ajouter 100 lignes dans ma table 3

    ma question :

    est-ce que les 10.000 records (table2) vont être ajouté rapidement ou doivent-il attendre entre chaque insert, que chaque packet (de 10 lignes) soit terminé d'être ajouté ?

    (pour le nom des tables j'ai pas trouvé d'exemple lol)

    Merci

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    (pour le nom des tables j'ai pas trouvé d'exemple lol)
    Ben donne les vrais noms !

    Ce qui m'étonne le plus, c'est le besoin qui te pousse à insérer d'un coup 10 000 lignes dans la table 2 qui vont générer automatiquement un total de 100 000 lignes dans la table 3.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Avec un trigger for each row, pour chaque ligne insérée le trigger s'exécutera et insérera les 100 lignes dans table3...
    Les triggers for each row plombent les perfs des opérations de masse.

    Le mieux est d'éviter les triggers et de faire les opérations nécessaires au sein d'une transaction si l'insertion des 100 000 lignes dans table 3 est faisable en une requête insert.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Avec un trigger for each row, pour chaque ligne insérée le trigger s'exécutera et insérera les 100 lignes dans table3...
    Les triggers for each row plombent les perfs des opérations de masse.

    Le mieux est d'éviter les triggers et de faire les opérations nécessaires au sein d'une transaction si l'insertion des 100 000 lignes dans table 3 est faisable en une requête insert.
    d'accord merci pour cette réponse, dans ce cas, je ferai plutot une tache cron qui ajoutera les lignes nécéssaire pour la table 3.

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Et tu as vraiment besoin de générer ces 100 000 lignes ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Et tu as vraiment besoin de générer ces 100 000 lignes ?
    Lorsque je pose une question je met toujours un exemple pour comprendre le fonctionnement, après c'est pas nécéssairement 100.000 lignes, ça peut être 1.000 lignes, mais tout ce que je voulais savoir c'est si c'est exécuter de manière synchrone ou asynchrone

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Par défaut
    Au final, je n'ai pas très bien compris la réponse.
    les Triggers sont bien synchrone non?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Les PC sont de plus en plus bruyants que faire
    Par plichtal dans le forum Ordinateurs
    Réponses: 260
    Dernier message: 23/12/2011, 12h28
  2. Les événement sont-ils synchrones ?
    Par fregolo52 dans le forum Framework .NET
    Réponses: 1
    Dernier message: 27/09/2006, 16h44
  3. Lister tous les triggers qui sont DISABLE
    Par mpeppler dans le forum Oracle
    Réponses: 2
    Dernier message: 23/08/2006, 10h05
  4. Réponses: 2
    Dernier message: 29/10/2003, 23h47
  5. Comment savoir si les ScrollBar sont visibles sur un TRichEdit ?
    Par vanquish dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/10/2003, 10h28

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