Mysql trigger ou code php ?

Fermé
cham33 - Modifié par cham33 le 26/10/2014 à 09:22
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 26 oct. 2014 à 09:25
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 :
$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:

1 réponse

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 26/10/2014 à 09:27
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
0