[optimisation] mysql connect close
10 messages
• Page 1 sur 1
- pierre_jean
- WRInaute occasionnel

- Messages: 339
- Inscription: 6 Avr 2005
[optimisation] mysql connect close
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 ?
ou se connecter et se déconnecter à chaque fois, pour libérer la connection ouverte ?
Merci et bonne journée
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
- pierre_jean
- WRInaute occasionnel

- Messages: 339
- Inscription: 6 Avr 2005
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
- petit-ourson
- WRInaute impliqué

- Messages: 855
- Inscription: 31 Mai 2004
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
Ne peux-tu pas faire :
connect bdd
requete 1
requere 2
close bdd
traitement php 1
traitement php 2
- FloBaoti
- WRInaute impliqué

- Messages: 755
- Inscription: 30 Avr 2006
+1 pour petit-ourson
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.
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

- Messages: 339
- Inscription: 6 Avr 2005
FloBaoti a écrit:+1 pour petit-ourson![]()
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
- 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

- Messages: 162
- Inscription: 3 Avr 2004
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
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

- Messages: 2678
- Inscription: 13 Fév 2004
Re: [optimisation] mysql connect close
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

- Messages: 339
- Inscription: 6 Avr 2005
Re: [optimisation] mysql connect close
jcaron a écrit:Bref, sans contexte, difficile de se prononcer.
Effectivement vous avez raison, le site est sur un dédié.
- anthomicro
- WRInaute discret

- Messages: 162
- Inscription: 3 Avr 2004
En même temps dédié ou mutu même combat, le but est d'avoir un code optimisé 
10 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Can't connect to local MySQL server through socket
- Erreur temporaire Can't connect to local MySQL server
- Accès BDD: Can't connect to local MySQL server through...
- Optimisation MySQL
- Optimisation MySQL - Debian 5
- Optimisation mysql et LIMIT
- Optimisation php/mysql
- optimisation BDD Mysql
- [resolu]Mysql - optimisation
- Optimisation requetes MySQL
Consultez la description détaillée des produits ou services de Google suivants : Google Friend Connect
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


