Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/10/2011, 02h11   #1
Nouveau Membre du Club
 
Inscription : juillet 2009
Messages : 110
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 110
Points : 37
Points : 37
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
gianni7033 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 10h48   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Citation:
(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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 11h30   #3
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
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.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 15h49   #4
Nouveau Membre du Club
 
Inscription : juillet 2009
Messages : 110
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 110
Points : 37
Points : 37
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.
gianni7033 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 16h06   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Et tu as vraiment besoin de générer ces 100 000 lignes ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 20h53   #6
Nouveau Membre du Club
 
Inscription : juillet 2009
Messages : 110
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 110
Points : 37
Points : 37
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
gianni7033 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 17h43   #7
Nouveau Membre du Club
 
Inscription : mai 2005
Messages : 61
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2005
Messages : 61
Points : 30
Points : 30
Au final, je n'ai pas très bien compris la réponse.
les Triggers sont bien synchrone non?
stos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h34.


 
 
 
 
Partenaires

Hébergement Web