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 temps d'accès MySQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Points : 57
    Points
    57
    Par défaut Optimisation temps d'accès MySQL
    Salut,

    Voilà ce qui m'amène : connexion simultanée MySQL et temps d'accès base de données.

    Le contexte de ma question : dans mes sites actuellement je rencontre des erreurs de max connexion exceeded (avec une limite de 2 connexion simultanée) et je cherche à corriger cela tout en optimisant les temps d'accès BDD.

    Qu'est ce qui selon vous est le plus profitable :
    - ouvrir puis fermer la connexion MySQL à chaque requêtes SQL
    - ouvrir la connexion MySQL en début de page et la fermer en fin?

    Sachant que le top du top serait de faire TOUTES les requêtes au même "moment" dans le script et donc de n'ouvrir la connexion qu'avant la portion de script où l'on fait TOUTES les requêtes SQL et de la fermer aussitôt ces dernières finies.
    Le soucis c'est que je ne peux pas faire ça dans mes pages, les requêtes étant effectuée en début, milieu et/ou fin de page de façon totalement aléatoire (cad différent selon la page traitée).

    Merci d'avance pour vos réponses.

  2. #2
    Invité
    Invité(e)
    Par défaut
    1/ Utilise des template (smarty est génial), comme ça tu pourra faire tout tes calculs , initialiser tes variables, puis dire "affiche moi ça la, et puis ça ici", et t'aura pas de html dans ton php (plus facile a relire).

    2/ Certain conseille d'ouvrir / fermer la connexion, perso j'ai jamais eu de pb de perf en mysql (aucune requète trop méchante), donc j'ouvre au début et je ferme a la fin. Par contre je libère mes requête des que j'en ai plus besoin (mysql_free_result()).

  3. #3
    Membre actif
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2007
    Messages : 199
    Points : 291
    Points
    291
    Par défaut
    Il me semble que la documentation de ton serveur MySQL
    pourrait t'apporter une autre voie de réflexion :

    http://dev.mysql.com/doc/refman/5.0/...nnections.html

  4. #4
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    Ton problème peut venir du fait que tu effectue deux connexion sur ton même serveur simultanément.
    Ton serveur en fonction de sa configuration risque de te refuser l'accès.

    En ce qui me concerne je tente le plus possible d'effectuer toutes mes requêtes nécéssaire en début de fichier puis de fermer la connexion.
    JE préfère avoir la plupart de mon script PHP s'éxécutant sans connexion à la base de donnée. Dans le cas d'un injection par exemple, il sera plis difficile d'accéder a ma base de donnée. Ne parlons même pas du mysql_pconnect()

  5. #5
    Invité
    Invité(e)
    Par défaut
    Moi j'ouvre et je ferme chaque requete, au moins je sais ou je vais.
    - Tu peux utiliser le cache mysql aussi.
    - tu peux également mettre en place un systeme de cache pour les fichiers pour rexecuter une requete si le resultat est tjs le meme ou s'il change rarement.
    - Pour l'optimisation tu peux aussi placer des index sur tes tables

  6. #6
    Membre régulier
    Avatar de megacool
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2008
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Salut,
    Personnellement je te conseil d'utiliser un système de cache !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par rbaatouc Voir le message
    Moi j'ouvre et je ferme chaque requete, au moins je sais ou je vais.
    - Tu peux utiliser le cache mysql aussi.
    - tu peux également mettre en place un systeme de cache pour les fichiers pour ne pas rexecuter une requete si le resultat est tjs le meme ou s'il change rarement.
    - Pour l'optimisation tu peux aussi placer des index sur tes tables
    le ne pas est important

  8. #8
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Points : 57
    Points
    57
    Par défaut
    Salut,

    Je reviens vers vous au sujet de ce topic, un peu à labours!

    Merci pour toutes vos contributions!
    Je vais optimiser à coup de MySQL Free Result et optimiser aussi mon système de template (je n'utilise pas smarty qui est un excellent projet mais qui me pose problème en plusieurs point).
    J'ai prévu de développer un système de cache dans l'avenir, ce qui allègera à coup sûr les connexions à la base de données.

    Merci à vous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] temps d'accès et base de donnée mysql
    Par itmak dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/04/2009, 11h07
  2. Réponses: 13
    Dernier message: 19/12/2008, 15h32
  3. Optimisation temps d'accès Bdd des composants ADO
    Par Creenshaw dans le forum Bases de données
    Réponses: 14
    Dernier message: 07/06/2005, 18h09
  4. [SGBD]Optimiser le temps d'accès aux données (schéma BD)
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 08/10/2004, 19h33
  5. [VB6] [BDD] Optimisation de l'accès aux données
    Par LadyArwen dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/01/2003, 14h27

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