[optimisation] mysql connect close

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

pierre_jean
WRInaute impliqué
WRInaute impliqué
 
Messages: 339
Inscription: Mer Avr 06, 2005 12:24

[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 accro
WRInaute accro
 
Messages: 2164
Inscription: Sam Mai 07, 2005 9:36

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 impliqué
WRInaute impliqué
 
Messages: 339
Inscription: Mer Avr 06, 2005 12:24

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 passionné
WRInaute passionné
 
Messages: 840
Inscription: Lun Mai 31, 2004 15:19

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 passionné
WRInaute passionné
 
Messages: 681
Inscription: Dim Avr 30, 2006 18:42

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 impliqué
WRInaute impliqué
 
Messages: 339
Inscription: Mer Avr 06, 2005 12:24

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 occasionnel
WRInaute occasionnel
 
Messages: 162
Inscription: Sam Avr 03, 2004 16:09

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: 1136
Inscription: Ven Fév 13, 2004 20:33

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 impliqué
WRInaute impliqué
 
Messages: 339
Inscription: Mer Avr 06, 2005 12:24

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 occasionnel
WRInaute occasionnel
 
Messages: 162
Inscription: Sam Avr 03, 2004 16:09

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é ;)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités