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

Langages de programmation Discussion :

Comment bien gérer une connexion à un serveur MySQL


Sujet :

Langages de programmation

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Comment bien gérer une connexion à un serveur MySQL
    Bonjour,

    je développe une application en C# qui accède fréquemment à un serveur MySQL.
    Actuellement, j'ouvre la connexion vers le serveur lors du démarrage de l'applic, et je la ferme lorsque je quitte mon applic.

    J'aimerai savoir si c'est la bonne méthode que j'utilise ou pas. Je me pose la question car si l'applic reste ouverte plusieurs heures (même si elle est pas utilisée) la connexion le sera aussi...

    J'ai testé en ouvrant la connexion juste avant de faire une requête vers la bdd et en la fermant dès que la requête a été faite, mais c'est beaucoup trop lent à l'utilisation.

    Merci d'avance pour vos conseils

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    J'aimerai savoir si c'est la bonne méthode
    Nous n'avons jamais eu de souci avec cette méthode dans un environnement réseau local.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Citation Envoyé par lu-k92 Voir le message
    J'aimerai savoir si c'est la bonne méthode que j'utilise ou pas.
    Non, et Oui !

    Il est totalement inutile de garder une connexion ouverte si tu ne l'utilise pas. Cela consomme des ressources pour rien, non seulement sur ta machine mais aussi sur le serveur.
    Sans compter les phénomènes de coupures de réseau ou de renouvellement de bail IP, ou autres, qui peuvent parfois engendrer des problèmes.

    L'autre solution, d'ouvrir la connexion à chaque requete et de la refermer ensuite, n'est pas forcément meilleur dans certains cas. C'est, par exemple totalement contre productif lorsque tu as une série de requêtes successives à faire.

    Comme bien souvent, l'idéal est entre les deux et dépend de ce que fait ton programme.

    Prenons l'exemple d'un process qui va avoir besoin d'une série de requêtes pour afficher des données à l'utilisateur et attendre une action de sa part. Il peut être judicieux d'ouvrir et garder la connexion ouverte durant toute la série de requête. Par contre, en attendant la réaction de l'utilisateur, qui de toute façon mettra au mieux quelques secondes à arriver, au pire plusieurs heures, il est inutile de conserver cette connexion.
    Donc on ouvre, on requete plusieurs fois, on ferme, on affiche et on attend. On ré-ouvrira une autre connexion plus tard si nécessaire.

    Bien sur, tout cela est, ensuite, à nuancer en fonction des besoins et exigences de tes process. Il n'y a pas de règles universelles en la matière, si ce n'est qu'il est inutile de conserver une connexion qui ne sert pas, il faut s'adapter à chaque cas.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Merci pour ces conseils et explications.

    Je vais étudier la chose et voir pour trouver un bon compromis afin de gérer au mieux la connexion au serveur.

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Leaving a connection open for a while is fine, as long as:
    1. you don't have so many concurrently idle connections that you hit the MySQL connection limit;
    2. you don't leave it open for hours without doing anything. The default MySQL connection wait_timeout is 8 hours; leave a connection inactive for that long and when you next come to use it you'll get a “MySQL server has gone away” error.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

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

Discussions similaires

  1. Comment faire une Connexion de serveur ?
    Par ACCENT1981 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/04/2015, 00h29
  2. Réponses: 0
    Dernier message: 06/12/2010, 11h39
  3. Réponses: 3
    Dernier message: 29/05/2007, 16h50
  4. gérer une base de donnée MySql via C++
    Par thiane dans le forum Bibliothèques
    Réponses: 9
    Dernier message: 19/05/2005, 16h19
  5. Problème de connexion au serveur MYSQL
    Par ETOKA dans le forum Outils
    Réponses: 2
    Dernier message: 27/11/2003, 09h28

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