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

C# Discussion :

Bonne méthode pour communiquer avec une base de données


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut Bonne méthode pour communiquer avec une base de données
    Bonjour à tous,

    En faite, je suis confronté à un petit problème de connaissances. Je suis en train de réaliser une application utilisant une base de données mysql. Le nombre de requêtes étant important, il m'a semblé judicieux de faire en sorte que l'application se connecte à la base de données au démarrage, puis utilise toujours le même MySqlConnection. Pour ce faire, je l'ai simplement mis en Static.
    Le problème est que j'utilise des threads pour exécuter les requêtes et parser les données, afin que l'application ne soit pas bloquée.
    Je me suis donc vite rendu compte qu'il est vivement déconseillé de faire simultanément deux requêtes sur le même MySqlConnection...

    Je me demandais donc s’il est plutôt conseillé de créer un nouveau MySqlConnection pour chaque requête et si cette méthode ne ralentit pas considérablement la chose, ou s’il faut que je me débrouille pour faire en sorte que deux requêtes ne soient jamais réalisées simultanément.

    Merci d'avance pour toute réponse.
    ++
    ChrOnOs

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    J'opte pour la deuxième solution.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par ChrOnOs83
    Bonjour à tous,

    En faite, je suis confronté à un petit problème de connaissances. Je suis en train de réaliser une application utilisant une base de données mysql. Le nombre de requêtes étant important, il m'a semblé judicieux de faire en sorte que l'application se connecte à la base de données au démarrage, puis utilise toujours le même MySqlConnection. Pour ce faire, je l'ai simplement mis en Static.
    Ca commence assez mal ......

    Le problème est que j'utilise des threads pour exécuter les requêtes et parser ls données, afin que l'application ne soit pas bloquée.
    Ah !! vaut mieux pas

    Je me suis donc vite rendu compte qu'il est vivement déconseillé de faire simultanément deux requêtes sur le même MySqlConnection...
    Oui, t'as du vite t'en rendre compte


    Je me demandais donc s’il est plutôt conseillé de créer un nouveau MySqlConnection pour chaque requête et si cette méthode ne ralentit pas considérablement la chose,
    Nan, nan ; tu as trouvé tout seul la méthode ad-hoc !!

    Pour éviter de ralentir, il faut "tuner" le pool de connections, mais là, sur MySql je ne peux pas t'aider. En pratique, il fait comprendre que les connections ne sont pas refermées physiquement mais "remises à dispo" du pool. (je parle en général, car MySql ne fait jamais parti de mon terrain de jeux )

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Bluedeep
    Pour éviter de ralentir, il faut "tuner" le pool de connections, mais là, sur MySql je ne peux pas t'aider. En pratique, il fait comprendre que les connections ne sont pas refermées physiquement mais "remises à dispo" du pool. (je parle en général, car MySql ne fait jamais parti de mon terrain de jeux )
    Merci pour cette info!
    J'ai fait quelques recherche sous google mais j'ai rien trouver de bien clair...
    En gros, est-ce que sa consite à créer un new MySqlConnection() pour chaque requêtes ou est-ce que cela ressemblerai plutôt à l'utilisation d'un tableau de MySqlConnection()... Je suis un peu perdu là...

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Ici on rentre dans le cadre d'une réponse spécifique à MySql, donc non liée au langage ou à l'environnement.

    Je pense que tu aurais une réponse plus précise dans la salle dédiée au SGBD mySql.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Bluedeep
    Ici on rentre dans le cadre d'une réponse spécifique à MySql, donc non liée au langage ou à l'environnement.

    Je pense que tu aurais une réponse plus précise dans la salle dédiée au SGBD mySql.
    Donc si j'ai bien compris, coté c#, il suffirait simplement de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MySqlConnection conn = new MySqlConnection(connectionStr);
    conn.Open();
    //La requete
    conn.Close();
    pour chaque requêtes.
    En ce qui concerne l'utilisation d'un pool et pas d'une réelle reconnection, ca ce passerai plutôt au niveau du serveur mysql.

    Suis-je HS

    Je te remerci déjà pour tout l'aide que tu m'as apporter!

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    C'est exactement cela et non, tu n'es pas HS; je voulais juste dire que les meilleurs compétences su MySql ne se trouvent pas forcément chez les gens fréquentant le forum DotNet. (personnellement, je n'y connais rien à MySql )

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Ok, un grand merci pour ton aide et bonne continuation

    ++
    ChrOnOs

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

Discussions similaires

  1. Réponses: 26
    Dernier message: 19/08/2015, 16h38
  2. Communiquer avec une base de données
    Par hémilie dans le forum Débuter
    Réponses: 1
    Dernier message: 09/02/2015, 10h59
  3. Réponses: 12
    Dernier message: 04/07/2010, 10h56
  4. Quel type d'application pour intéragir avec une base de données ?
    Par pontus21 dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 23/08/2008, 20h08
  5. communiquer avec une base de données sur internet
    Par richard038 dans le forum Bases de données
    Réponses: 7
    Dernier message: 15/02/2006, 18h01

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