JeuWeb - Crée ton jeu par navigateur
[réglé] (dé)connexions SQL multiples (ou pas) ? - 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 : [réglé] (dé)connexions SQL multiples (ou pas) ? (/showthread.php?tid=697)



[réglé] (dé)connexions SQL multiples (ou pas) ? - Raoull - 26-01-2007

Je me pose une question un peu théorique, mais qui me perturbe depuis un moment...

Je sais qu'en pratique, il faut ouvrir une connexion SQL le plus tard possible, juste quand on en a besoin, et la fermer le plus tot possible, juste apres les requetes.

Mais je me pose la question sur la durée et le nombre de ces connexions... Enfin pour exliquer ca je vais prendre un exemple.

Imaginons que j'ai une page d'index, dans laquelle je vais inclure 2 autres scripts, A et B.

Je sais qu'au début de ma page d'index j'ai besoin d'une connexion à SQL pour une requete.

Je sais aussi, qu'ensuite dans les includes A et/ou B, j'aurai *peut-être* besoin d'une connexion SQL pour faire une requete. Je dis p-e car disons que ca dépend de la situation...

Mon souci, c'est de savoir s'il vaut mieux ouvrir une connexion (longue) dans ma page d'index pour la requete sûre, et ne fermer cette connexion qu'à la fin de ma page d'index, donc apres les includes, au cas ou la connexion sera nécessaire...

OU BIEN s'il vaut mieux ouvrir et fermer une connexion (courte) dans ma page d'index, puis au besoin dans les includes, réouvrir/fermer des connexions (courtes).

En bref, faire 1 (trop) longue connexion (peut-être inutile), ou 3 petites (sûres)...

J'espère que c clair...


RE: (dé)connexions SQL multiples (ou pas) ? - X-ZoD - 26-01-2007

a mon humble avis je pense qu'il est preferable de garder une conexion ouverte plutot que de lancer une connexion a plusieurs reprise.
pour tes includes , tu ne peux pas faire un if ?


RE: (dé)connexions SQL multiples (ou pas) ? - denisc - 26-01-2007

Pareil, il vaut mieux garder la connexion ouverte du début à la fin et n'utiliser que cette connexion pour tous les appels BD. Les temps de connexion aux BD sont extrèmement long en temps et gourmands en ressources (allocation mémoire), de même que la déconnexion (libération mémoire)... Sans compter que les interfaces PHP/mySQL ou PHP/msSQL sont pas trop bien faites de ce côté, car les connexion, même déclarées comme coupées côté applicatif restent persistantes un certain temps côté BD!


RE: (dé)connexions SQL multiples (ou pas) ? - Raoull - 26-01-2007

Ok, vos réponses confirment quand meme ce que je pensais.

X-ZoD, l'histoire des includes et des if là, c'est un pur exemple théorique.

En fait pendant un moment, j'avais pris l'habitude d'ouvrir/fermer des connexions à chaque fois que c'était utilile, donc plusieurs fois dans une même page, à cause des includes entre autre.

Et puis une autre habitude, a été d'ouvrir cash une connexion au début de la page, et de la fermer tout en bas. Comme ca, on s'emmerde pas dans les includes ou dans les classes, la connexion SQL est toujours ouverte toute la durée du script...

Apparement c'est donc cette dernière méthode qui est à préférer


RE: (dé)connexions SQL multiples (ou pas) ? - NicoMSEvent - 26-01-2007

pour encore moins s'embeter, voilà un script présenté le mois passé, qui permet d'ouvrir une connexion si aucune connexion n'est ouverte (dans le cas d'une page sans requete a la base de donnée, aucune connection n'est ouverte). La connection est fermée automatiquement dès que la page est transmise
http://www.jeuweb.org/board/showthread.php?tid=832


RE: (dé)connexions SQL multiples (ou pas) ? - Raoull - 27-01-2007

Pas mal en effet, par contre j'ai fait une petite remarque sur la fermeture de ta connexion ; dans le topic approprié de ta classe.

Je mets ce sujet comme résolu. Il vaut mieux donc n'ouvrir qu'une seule connexion, et c'est logique.