Mysql trigger ou code php ?
cham33
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour, je cherche depuis hier des sujets sur différents forum qui en parle mais impossible de trouver.J'aimerais connaitre la différence de performance entre un simple trigger dans mon cas et un code php qui fait grosso modo la même chose:
code php :
trigger before insert:
Les deux font la même chose avant l'ajout d'une ligne dans la table "vote" il agrémente la colonne article_jaime d'un +1.
quelle méthode est la plus adapté selon vous? merci
code php :
$rate = 1;
$b = $DB->insert("UPDATE article SET article_jaime = article_jaime + {$rate} WHERE article_id= '{$id}' ");
trigger before insert:
UPDATE article SET article_jaime = article_jaime + 1 WHERE new.vote_article_id = article_id
Les deux font la même chose avant l'ajout d'une ligne dans la table "vote" il agrémente la colonne article_jaime d'un +1.
quelle méthode est la plus adapté selon vous? merci
A voir également:
- Mysql trigger ou code php ?
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Scanner qr code pc - Guide
1 réponse
Bonjour,
En termes de performances pures, je pense que le trigger sera plus efficace. Tu t'économises une requête supplémentaire, potentiellement distante à la base. Ceci dit ce n'est qu'une intuition. Pour le vérifier, tu pourrais coder les deux méthodes, appeler chacune en boucle, et mesurer le temps d'exécution.
Par contre, en termes de facilité de maintenance de ton application, je trouve personnellement les triggers trop peu visibles. Quand on lit le code PHP, que l'on imagine être la source de la logique applicative, les effets du trigger sont complètement masqués.
Je préfère personnellement utiliser une fonction / procédure stockée de la base. Au moins on l'appelle explicitement, contrairement au trigger.
Xavier
En termes de performances pures, je pense que le trigger sera plus efficace. Tu t'économises une requête supplémentaire, potentiellement distante à la base. Ceci dit ce n'est qu'une intuition. Pour le vérifier, tu pourrais coder les deux méthodes, appeler chacune en boucle, et mesurer le temps d'exécution.
Par contre, en termes de facilité de maintenance de ton application, je trouve personnellement les triggers trop peu visibles. Quand on lit le code PHP, que l'on imagine être la source de la logique applicative, les effets du trigger sont complètement masqués.
Je préfère personnellement utiliser une fonction / procédure stockée de la base. Au moins on l'appelle explicitement, contrairement au trigger.
Xavier