[optimisation] mysql connect close

pierre_jean
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 339
Inscription: 6 Avr 2005

[optimisation] mysql connect close

Message le Mer Déc 26, 2007 10:13

Bonjour,

Suite à la lecture de l'article optimiser mysql, que faut-il mieux faire si dans une page j'ai plusieurs requêtes sql avec traitement php derrière ?

Code: Tout sélectionner
connect bdd
requete 1
traitement php 1
requere 2
traitement php 2
close bdd


ou se connecter et se déconnecter à chaque fois, pour libérer la connection ouverte ?


Code: Tout sélectionner
connect bdd
requete 1
close bdd
traitement php 1

connect bdd
requere 2
close bdd
traitement php 2


Merci et bonne journée


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Mer Déc 26, 2007 10:38

Au risque de dire une connerie, je serais tenté de dire que tu fermes la connections dès que tu n'a plus l'utilité.

pierre_jean
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 339
Inscription: 6 Avr 2005

Message le Mer Déc 26, 2007 10:40

medium69 a écrit:Au risque de dire une connerie, je serais tenté de dire que tu fermes la connections dès que tu n'a plus l'utilité.


J'ai risqué également en posant la question :wink: c'est ce que j'aurais tenté de faire aussi ... est-ce une bonne pratique ?

petit-ourson
WRInaute impliqué
WRInaute impliqué
 
Messages: 855
Inscription: 31 Mai 2004

Message le Mer Déc 26, 2007 10:53

Tout dépend également ton temps de "traitement php 1" ? S'il dure longtemps il est sans doute préférable de fermer ta connexion, sinon c'est peut être pas nécessaire.

Ne peux-tu pas faire :

connect bdd
requete 1
requere 2
close bdd

traitement php 1
traitement php 2

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Mer Déc 26, 2007 11:16

+1 pour petit-ourson :wink:

Si le temps entre les 2 requêtes est faible, fermer et réouvrir la connexion va surcharger le serveur pour rien.
En revanche, s'il y a plusieurs secondes entre les 2, et d'autres scripts qui tournent en parallèle, il vaut mieux fermer et réouvrir.

pierre_jean
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 339
Inscription: 6 Avr 2005

Message le Mer Déc 26, 2007 11:26

FloBaoti a écrit:+1 pour petit-ourson :wink:

Si le temps entre les 2 requêtes est faible, fermer et réouvrir la connexion va surcharger le serveur pour rien.
En revanche, s'il y a plusieurs secondes entre les 2, et d'autres scripts qui tournent en parallèle, il vaut mieux fermer et réouvrir.


Effectivement ça semble encore mieux !

Alors comme le suggère petit-ourson (brun ou pas :wink: ) le plus optimisé serait :

Code: Tout sélectionner
connect bdd
requete 1
requere 2
close bdd

traitement php 1
traitement php 2


mettre toutes les requêtes en début de script et faire tous les traitements php après avoir fermé la connexion mysql ?

anthomicro
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 3 Avr 2004

Message le Mer Déc 26, 2007 15:51

Salut,

Merci d'avoir cité mon article :p

Sinon en fait comme l'a très bien dit petit-ourson, ça dépend de pas mal de choses.

Le mieux est de faire ceci :

connexion
- requete
- requete
- requete [...]
déconnexion

seulement il peut arriver qu'il faille pour faire certaines requêtes, avoir besoin du traitement d'autres requêtes. Ca dépend de ce temps justement. Si ton temps de traitement est élevé, fermes la connexion puis rouvre-la ensuite (tout en sachant qu'ouvrir une connexion demande des ressources processeur importantes), sinon il vaut mieux faire toutes tes requêtes directement puis fermer la connexion ensuite ;)

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2678
Inscription: 13 Fév 2004

Re: [optimisation] mysql connect close

Message le Mer Déc 26, 2007 18:00

pierre_jean a écrit:
Code: Tout sélectionner
connect bdd
requete 1
traitement php 1
requere 2
traitement php 2
close bdd


ou se connecter et se déconnecter à chaque fois, pour libérer la connection ouverte ?


Code: Tout sélectionner
connect bdd
requete 1
close bdd
traitement php 1

connect bdd
requere 2
close bdd
traitement php 2


Merci et bonne journée


Ca manque un peu de contexte (hébergement mutualisé ou dédié, tout ça), mais en général, on se débrouille pour garder les connexions aux bases de données ouvertes, au point qu'il est courant de garder la même connexion d'une requête http à l'autre (connexions persistantes). Fermer et rouvrir une connexion à chaque requête c'est un joli gâchis, sauf si on est limité en nombre de connexions, ou qu'on utilise plusieurs bases de données différentes.

Bref, sans contexte, difficile de se prononcer.

Jacques.

pierre_jean
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 339
Inscription: 6 Avr 2005

Re: [optimisation] mysql connect close

Message le Mer Déc 26, 2007 19:12

jcaron a écrit:Bref, sans contexte, difficile de se prononcer.


Effectivement vous avez raison, le site est sur un dédié.

anthomicro
WRInaute discret
WRInaute discret
 
Messages: 162
Inscription: 3 Avr 2004

Message le Mer Déc 26, 2007 22:04

En même temps dédié ou mutu même combat, le but est d'avoir un code optimisé ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité