JeuWeb - Crée ton jeu par navigateur
Connexions max pour le MySQL, comment, quoi, etc ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Connexions max pour le MySQL, comment, quoi, etc ? (/showthread.php?tid=2746)

Pages : 1 2 3


RE: Connexions max pour le MySQL, comment, quoi, etc ? - Ludvig - 14-07-2008

Merci Oxman, je vais essayer de regrouper mes connexions en plus grands et en "haut" de la page alors.

/Lud


RE: Connexions max pour le MySQL, comment, quoi, etc ? - Cartman34 - 14-07-2008

Ludvig a écrit :Oki, j'ai reçu comme consigne il y a longtemps de suivre cette formulaire :

* Connexion DB
* requêtes
* Déconnexion DB
* Calcules & et affichage (pas d' "echo" mais sauvegarder tout affichage dans une chaine de caractère, $_SESSION['out'] par exemple)
* faire l'echo du chaine ($_SESSION['out'])
Le système que tu proposes n'est pas forcément efficace.
En théorie, le système MVC est le meilleur(selon moi) mais on ne peut pas toujours séparer l'affichage du reste et les utilisateurs de templates sont encore trop rares.

Une bonne manière de faire les choses est de mettre ta connexion en variable globale et tu regardes à chaque si elle est définie, si elle ne l'est pas c'est que ta connexion est fermée et elle doit s'ouvrir.
Dans mes fonctions, j'affiche la page à la fin du script grace à une fonction et je ferme juste avant la connexion à la bdd.

En accord avec le conseil de fermer la connexion avant tout affichage(echo par exemple) mais cela n'est vraiment valable que si tu affiches beaucoup de chose car tu occupes une connexion à la bdd inutilement.


RE: Connexions max pour le MySQL, comment, quoi, etc ? - Ludvig - 15-07-2008

>Une bonne manière de faire les choses est de mettre ta connexion en variable globale

Je garde une connexion jusqu'à que j'ai fini avec tout les requêtes.

On peut dire que j'implémente MVC mais par des fonctions,
le connect() compte le nombre de connexions (première appelle il se
connecte au base de donnés ), le deconnect() décrément le même
nombre et au zéro il déconnecte réellement de la base de donnés.

Du coup si je suis fainéant j'ai qu'à mettre un connect() en haut de la
"page" et un deconnect() après le dernière requête et j'utilise donc qu'une connexion sur la base.
Evidemment il faut faire attention de ne pas trainer entre ces deux appels.

/Lud


RE: Connexions max pour le MySQL, comment, quoi, etc ? - Ter Rowan - 15-07-2008

désolé de m'intégrer dans le sujet, mais ça m'intéresse bien Smile

ce que je comprends c'est

1 connexion en chargement de page
des requêtes basées sur cette connexion
1 déconnexion en fin de page


est mieux
que
1 connexion 1 requête 1 déconnexion
1 connexion 1 requête 1 déconnexion


mais quid si plusieurs pages :

1 connexion au chargement de la première page
des requêtes sur cette connexion
un changement de page
des requêtes sur cette connexion (la même
....
1 déconnexion par timeout loin


ou bien

1 connexion en chargement de page
des requêtes basées sur cette connexion
1 déconnexion en fin de page

un changement de page

1 connexion en chargement de page
des requêtes basées sur cette connexion
1 déconnexion en fin de page


de même quid avec Ajax ?

et d'abord la connexion, comment la passer d'une page à l'autre, comment la reconnaitre, certes c'est une variable mais que représente elle "en vrai" (est ce le serveur sql qui identifie l'utilisateur par exemple ? )


RE: Connexions max pour le MySQL, comment, quoi, etc ? - Cartman34 - 15-07-2008

Ta connexion doit s'arreter à la fin de ta page dans tous les cas, n'essaye pas de la faire perdurer, ce n'est pas une bonne solution.
Tu ne dois faire qu'une seule connexion par page.


RE: Connexions max pour le MySQL, comment, quoi, etc ? - Ter Rowan - 15-07-2008

merci Smile


RE: Connexions max pour le MySQL, comment, quoi, etc ? - Ludvig - 17-07-2008

Et le mieux c'est d'être connecte le moins long temps possible (et qu'une fois !).

Enfin c'est ce que j'ai essayé de dire, maintenant si je suis en tort, merci de me le dire Smile


RE: Connexions max pour le MySQL, comment, quoi, etc ? - z3d - 17-07-2008

Pour conclure sur la bonne manière de faire :
  1. Si GET ou POST => Traitement de ceux-ci
  2. Ouverture de connection
  3. SELECT si besoin, traitement algorithmique...
  4. Traitement algorithmique, UPDATE, DELETE si besoin....
  5. Fermeture de connection
  6. Traitement algorithmique, Affichage du résultat



RE: Connexions max pour le MySQL, comment, quoi, etc ? - Shivaan Keldon - 17-07-2008

personnellement, pour les sites qui ne sont pas trop gros, et qui n'auront pas un trafic énorme (genre 2000 connexions pas jour), je précaunise l'utilisation des connexions persistantes

certes, elles ont un coût en ressources, mais combinées avec un objet singleton de connexion, elles font des merveilles. car il n'y aura toujours qu'une (et une seule) connexion d'activée par session

après, comme je l'ai dit, tout dépend de la charge et du trafic du serveur


RE: Connexions max pour le MySQL, comment, quoi, etc ? - z3d - 17-07-2008

Attention à l'utilisation des connexions persistantes, celle-ci sont à double tranchant et on peut rapidement se retrouver confronté à une limitations de connections.

Certes, cela peut améliorer l'éfficacité d'un script mais cela requiert, au préalable, une étude approfondie de l'utilisation de vos ressources de connexions ainsi que le type de votre serveur.

Pour de plus amples informations, veuillez lire ceci.