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

PHP & Base de données Discussion :

Précédure stockée MySQL VS Script PHP


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut Précédure stockée MySQL VS Script PHP
    Bonjour à tous.

    Voila je viens d'entendre parler des procédures stoquées de MySQL, et je voulais me renseigner un peu là dessus.
    j'ai trouver quelque articles, mais c'est plus du technique que de la description ou des documentation à proprement dit.

    Si j'ai bien compris, cela sert à exécuter toute une batterie de requêtes à la suite, que ce soit de l'insert, de l'update, du select...
    Bien...

    mais quel avantage par rapport à un script php ?
    legertée en resources (ou pas ?), sécurité ?
    Concrètement, quel sont les avantages des procédures stoquées de MySQL comparer à un script php "basique" ?

    Si vous connaissez des liens qui comparent, par exemple, des scripts PHP/Mysql je prends avec plaisir

    Merci pour vos futures réponses.

  2. #2
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 684
    Points : 7 891
    Points
    7 891
    Par défaut
    Bonsoir,

    en fait, les avantages des procédures stockées sont multiples:
    - tu peux "masquer" la complexité de ta base à ton codeur PHP: tu peux par exemple fournir des procédures stockées pour les écritures/mises à jour et des vues pour les lectures, découplant ainsi la partie base de données et la partie application PHP
    - si tu as la même requête à plusieurs endroits de ton code et que ta base change, tu es obligé de faire des changements dans ta requête un peu partout dans ton code, tandis que si c'est une procédure stockée, tu n'as qu'une seule modification à faire.
    - tu peux gérer des droits sur les procédures
    - tu peux facilement (et là c'est un grand avantage) gérer des transactions, et donc faire du commit ou du rollback sur ta base.

    Je vois cependant deux désavantages:
    - le code généré pour une procédure stockée n'est pas portable (changer de SGBD => réécrire les procédures)
    - la base peut faire plus de calculs et donc peut être un peu plus chargée


    Bref, ce sont les avantages/désavantages immédiats que je vois, mais il peut y en avoir d'autres en fonction de ton application.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Okay merci pour les avantages.
    je ne vois pas trop ce que sont les commit et rollback sur ta base, je vais me renseigner la dessus.
    Pour la portabilité, ce n'est pas grave, c'est une refonte en v.2 donc le choix du sgbd est bien claire pour moi.

    par contre je ne vois pas pour la charge. processus ?
    D'après ce que je comprends le code est précompiler et n'a donc pas besoin d'être interprété par la sgbd.
    Citation Envoyé par Wikipedia
    performance : économise au serveur l'interprétation de la requête car elle est précompilée
    pourrais tu précisé ?

    merci

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    A savoir aussi :

    - Une pocstock réunissant par exemple 3 requêtes, est forcement moins gourmande que 3 requêtes lancées via PHP au regard du traffic réseau en effet dans le premier cas 1 aller retour vers le SGBD est nécessaire, dans le 2eme cas il en faut 3.

    - Une procStock est plus rapide car le SGBD fabrique un plan d'exécution qu'il met en cache pour ledites requêtes, elles sont donc en un sens "pré compilées" et plus rapide. Dans le cas de requêtes envoyées a la main la génération de ce plan est faite à chaque fois d'où la perte de performances.

  5. #5
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 684
    Points : 7 891
    Points
    7 891
    Par défaut
    Citation Envoyé par xxkirastarothxx Voir le message
    par contre je ne vois pas pour la charge. processus ?
    D'après ce que je comprends le code est précompiler et n'a donc pas besoin d'être interprété par la sgbd.

    pourrais tu précisé ?

    merci
    Bien sûr.

    Imagine une requête A, qui te retourne un jeu de résultats.
    Tu applique un certain nombre d'opérations à ce jeu de résultats. (par de la manipulation de chaînes de caractères un peu complexe)
    Puis tu crée une requête B en fonction du résultat de ces opérations.

    Si tu fais tes requêtes A et B depuis le PHP, tes opérations sur les résultats pourront être effectuées par ton serveur d'application (ton serveur WEB par exemple) en PHP.
    Pour une procédure stockée, ces opérations vont être effectuées par le SGBD en SQL. Si elles sont nombreuses et un peu lourdes, tu aura une augmentation de la charge de travail de ta base malgré le fait que ce code soit précompilé. (maintenant, comme le dit RideKick, tu y gagne au niveau des performances réseau, et de la compilation)

    Citation Envoyé par xxkirastarothxx
    je ne vois pas trop ce que sont les commit et rollback sur ta base, je vais me renseigner la dessus.
    Pour ce qui est du ROLLBACK et du COMMIT (gestion des transactions), tu peux regarder ce lien (doc MySQL) .

    Sinon, tu peux aussi faire une recherche sur développez ou sur google avec les mots clés "sgbd" et "transaction" (ça ne sera pas forcément ciblé MySQL mais en même temps, le principe reste le même partout)

Discussions similaires

  1. [MySQL] Problème de connexion MySQL avec script PHP
    Par alen22 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/08/2012, 11h42
  2. Réponses: 1
    Dernier message: 26/01/2010, 00h06
  3. [Question] Logs mysql et scripts php
    Par sliderman dans le forum Requêtes
    Réponses: 0
    Dernier message: 25/10/2007, 16h39
  4. [MySQL] Recherche BDD MySQL via script PHP
    Par poitierjohan dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/10/2007, 13h12
  5. importer base mysql et script php...
    Par kenken38 dans le forum Administration
    Réponses: 8
    Dernier message: 04/05/2006, 18h03

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