Méthode de Connexion MySQL

Méthode de Connexion MySQL - PHP - Programmation

Marsh Posté le 29-11-2006 à 17:01:38    

Bonjour,
 
Je travail actuellement sur un site internet à fort traffic.
J'aimerai avoir votre opinion expert de préférence sur la meilleure méthode d'ouvrir et fermer les connexion à mysql avec php.
 
méthode 1:
on ouvre une connexion en début de script
requete1
requete2
requete3
requete4
requete5
on ferme la connexion
pendant le déroulement évidement on fait des traitements et affichage html.
 
méthode 2:
on ouvre une connexion
requete1
on ferme la connexion
on ouvre une connexion
requete2
on ferme la connexion
on ouvre une connexion
requete3
on ferme la connexion
on ouvre une connexion
requete4
on ferme la connexion
on ouvre une connexion
requete5
on ferme la connexion
idem
 
- la méthode 1 parait plus propre mais si la page est longue à charger sa bloque la connexion
- la méthode 2 a le mérite de prendre la connexion uniquement le temps de la requete

 
A votre avis quelle est la bonne méthode pour un gros site ?
 
Merci
 
 
 

Reply

Marsh Posté le 29-11-2006 à 17:01:38   

Reply

Marsh Posté le 29-11-2006 à 17:13:23    

Salut :)
 
La méthode 1 est à beaucoup plus rapide car tu n'ouvre pas de connexion à chaque requête...
 
Même (et surtout) dans le cas de sites à fort traffic, il vaut mieux ouvrir sa connexion en début de script et la refermer à la fin (par contre, tu peux libérer de la mémoire en vidant les résultats de tes requêtes avec la méthode free de ton objet $result ;))


---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
Reply

Marsh Posté le 29-11-2006 à 17:27:05    

Merci pour ta réponse rapide.
 
Je ne suis pas convaincu car dans les docs j'ai lu que le nombre de connexion simultané était limité.
ici max_user_connexion=5.
 
Comment 10.000 visiteurs peuvent n'utiliser à eux tous que 5 connexion avec des pages de 60Ko si on bloque une connexion à chaque ouverture de page ?
 
Pour le temps d'execution en revanche tu as raison car la fonction mysql_connect prend un certain temps mais pour éviter le max connexion quand est il ?

Reply

Marsh Posté le 29-11-2006 à 17:49:02    

Si tes scripts php sont bien faits, leur durée d'exécution est courte (< 1s). Par ailleurs, le temps mis pour ouvrir une connexion à une BD n'est pas négligeable. Donc, sans conteste, la meilleure solution est la méthode 1.
 
J'avais fait un test (malgré moi) avec une connexion stockée dans un singleton en php5. Avec la méthode 1, tout va bien, le script php met peu de temps à s'exécuter. En portant mon script sur un serveur en php4 (dans ce cas, mon singleton ne fonctionne plus car static n'existe pas en php4). Dans ce cas là, je me trouve dans la méthode 2 : ouvrir la connexion avant chaque requête. Ben y'a pas photo, dans ce cas là, le script met vraiment plsu de temps à s'exécuter.
 
Pour le coup de max_user_connexion=5, y'a moyen de le changer si t'as accès au fichier de conf de mysql (my.ini il me semble)

Reply

Marsh Posté le 29-11-2006 à 17:52:51    

rufo a écrit :

En portant mon script sur un serveur en php4 (dans ce cas, mon singleton ne fonctionne plus car static n'existe pas en php4).


Pouet, on peut émuler du singleton en PHP4. static existe, mais n'est pas explicite

Reply

Marsh Posté le 29-11-2006 à 17:56:01    

Je ne peux changer cette variable mais 5 semble correct sinon c'est que c'est mal coder.
 
Je viens de downloader JMeter ca a l'air assez performant pour simuler plusieurs sessions. Je vais tester avec les deux méthodes.
 
Concernant le temps de création des connexions il me semble que mysql gere une pile de connexion donc ce ne doit pas etre si long enfin je pense comme vous deux que le mieux est la 1, je vais faire des essai.
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed