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 :

optimisation sessions vs requetes


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Par défaut optimisation sessions vs requetes
    Bonjour,

    tout d'abord je tiens à m'excuser si mon langage n'est pas celui d'un pro mais j'ai entrepris il y a quelques mois de m'atteler à la création d'un site personnel d'accès à une BDD qui pourra intéresser "plus d'une poignée de personnes".

    J'utilise pour cela PHP & MYSQL et ai déjà créé de nombreux formulaires mais me pose une question de fonds sur le recours aux données de sessions ou aux requêtes.

    Pour l'instant j'ai privilégié les requêtes aux données de sessions dans la conception de mes formulaires mais m'interroge par rapport à 3 ou 4 données dont j'ai besoin quasiment à chaque fois. Une requête sollicite le serveur mais une donnée de session aussi. Alors que vaut-il mieux ?

    Existe t'il un moyen simple de déterminer à partir de quel moment une donnée de session est préférable à une requête du point de vue de la charge de travail pour le serveur ? J'imagine que c'est fonction du nombre d'utilisateurs etc. mais j'ai aucune idée de la charge que l'un et l'autre peuvent représenter.

    En vous remerciant par avance de vos réponses éclairées.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Attention, les sessions ne sont pas partagées entre les utilisateurs.
    Il faudra pour chaque utilisateur, aller chercher la donnée la ou elle est.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Par défaut
    oui ça je sais que les données de sessions ne sont pas partagées (et heureusement pour le coup !).

    Il faut imaginer ici plusieurs utilisateurs connectés en mm temps, exploitant simultanément leurs données personnelles.

    Alors d'après vous, requêtes à chaque formulaires ou 3 ou 4 données de sessions de plus par utilisateur ? Qu'est ce qui est le + lourd pour le serveur ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si tu as besoin d'utiliser plusieurs fois pendant la visite une donnée provenant de la base sans qu'elle soit mise à jour, alors il vaut mieux la stocker en session.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Par défaut
    c'est ce que je croyais aussi mais j'ai entendu l'inverse récemment et suis un peu perdu (les données de sessions étant soit disant + lourdes pour le serveur qu'une flopée de requêtes supplémentaires à exécuter).

    D'autres avis ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu as entendu ça ou ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    c'est ce que je croyais aussi mais j'ai entendu l'inverse récemment et suis un peu perdu (les données de sessions étant soit disant + lourdes pour le serveur qu'une flopée de requêtes supplémentaires à exécuter).
    J'en suis pas convaincu, je dirais que ça reste à prouver.

    Mais il y a un aspect qui n'a pas été évoqué, c'est le coté sécurité, confidentialité des données.
    Si on stocke des données trop sensibles, on prend le risque qu'une personne mal intentionné puisse avoir accès à ses données.
    L'exemple typique c'est avoir un espace privé donc avec une identification.
    Ici, il est théoriquement préférable de ne stocker que son identifiant, tout le reste sera fait avec une requête pour rechercher les autres (nom, prénom, adresse, etc, etc ...).


    Après ça, si on remarque que l'on fait trop de requêtes, et que ça amène à des ralentissements, et qu'on en vienne à déporter certaines données dans les sessions pour soulager la Bdd, je ne suis pas convaincu que ce soit une bonne approche, même si au bout ça améliore les performances.
    J'ai plutôt tendance à penser que soit il y aurait une optimisation à faire coté Bdd (on peu peut être diminuer certaines requêtes, cache, etc ...), ou alors ce serait la formule de l'hébergement qui ne serait pas adapté au besoin.


    En tout cas, de mon coté je ne mets pas de données en session pour soulager la Bdd.
    A u niveau des session, je stocke principalement des IDs, des identifiants qui après permettront de récupérer les données associées dans la Bdd.
    A savoir aussi qu'il n'est pas rare que les sessions soient elles même gérées dans la Bdd, ce qui est mon cas d'ailleurs.

    D'ailleurs, rien n'empêche de se créer une table (ou plusieurs) qui stockerait certaines données récurrentes (persistantes ou presque), et on fera en sorte de récupérer tout ça en 1 seule requête de page en page par exemple.

    Il y a à mon sens des solutions pour éviter que les sessions ne soient pas trop "éléments foure tout" (je résume pour faire court).

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/04/2006, 18h58
  2. Optimisation d'une requete récurrente
    Par winzou dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/01/2006, 22h07
  3. Optimisation d'une requete specifique
    Par Tchinkatchuk dans le forum Langage SQL
    Réponses: 9
    Dernier message: 16/12/2005, 14h14
  4. optimisation d'une requete de recherche
    Par moog dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 06/04/2005, 16h58
  5. optimiser BDD pr requete
    Par xopos dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 10/02/2005, 10h06

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