mysql_close() nécessaire pour améliorer les performances ?

WRInaute accro
Bonsoir,

J'ai pu lire qu'il était nécessaire de fermer les connections pour éviter de saturer le serveur.

Donc mettre mysql_close(); avant les premiers echo si possible...

C'est vraiment nécessaire / efficace ?

Merci
 
WRInaute discret
Je doute que tu ai des connexion persistantes dans tes scripts...

Donc ma réponse:

non ce n'est pas necessaire, la connexion se ferme toute seul a la fin du script (ou au timeout, si jamais...)

la perte de perf résultant de l'omission de la cloture a la base est pour moi insignifiante... (hormis scripts foireux)

encore une fois, je ne parle pas pour les connexions persistantes...
 
WRInaute accro
Merci bien.


J'utilise bien mysql_connect


Donc les break ne sont pas nécessaires merci bien :).

Cependant si j'ai bien comprit l'article mes pages seraient plus rapide avec un mysqlp_connect sans oublier de fermer la connection ?
 
WRInaute discret
dorian53 a dit:
mysql_pconnect()

Non justement l'intérêt c'est de les laisser ouvertes.

On est d'accord... le mieux est qu'il lise la doc... pour moi ça n'a pas d'utilité dans ma config, dans mes scripts etc...
 
WRInaute accro
un jour je me suis rendu compte que je n'avais jamais mis de mysql_close() sur mes pages. Mes pages faisait "texte-requête sql plutot lourde-un petit peu de texte"
et bien en mettant un close() entre le SQL et le peu de texte qu'il restait, mon temps de chargement des pages a été presque divisé par deux.
Plus utile que je ne l'avais imaginé, maintenant je m'en sers systématiquement ;)
 
WRInaute accro
J'ai également fait le test de temps de génération mais mes pages ne sont pas assez lourdes et trop simples pour que je puisse en tirer de réelles conclusions :-(.
 
WRInaute accro
Fais un test simple... calcule le temps de chargement de ta page actuellement... fais plusieurs fois le test

Ensuite tu reprends la meme page... et tu la modifies en profondeur pour que la durée de l'ouverture de ta base soit la plus courte possible ...

et oh miracle, le temps de chargement peut fondre dans certains cas

J'ai testé et effectivement sur certaines pages, ca peut etre pas mal...
 
WRInaute discret
heu avec un site a fort trafic ... le serveur ramait, et j'ai rajouter tous ses mysql_close() et c'était un peu mieux quand même ! Mysqld souffre bien moins !

Si vous utilisez une classe d'abstraction il suffit de lettre le mysql_close dans le destructeur, comme ça, c'est sur et certain que la connexion sera fermé à a la destruction de l'objet !
 
WRInaute discret
Question: en php4, comment définir un destructeur dans la class?

c'pas possible si?

Que faut-il penser a mettre dans une class (histoire de mettre dans le destructeur tout ce qui est implicitement a la destruction auto de l'objet)...
 
WRInaute discret
Php 4 ne supporte pas de destructeur.
Ceci est uniquement valable a partir de php 5

Le fait est qu'avec un hebergement mutualise, les nombres de connections mysql est bien souvent limites.
C'est pour ca que fermer ses connections peu aussi s'avere interessant.
Ca evite d'avoir un message d'erreur du type "Trop de connection a la base de donnees ...." aussi ;)
 
WRInaute accro
On peux donc conclure qu'il faut toujours fermer ces connections le plus tôt possible pour optimiser ses pages :).

J'ai également mit en place un système de cache pour optimiser les performances :).
 
WRInaute passionné
French Fred a dit:
Le fait est qu'avec un hebergement mutualise, les nombres de connections mysql est bien souvent limites.
C'est pour ca que fermer ses connections peu aussi s'avere interessant.
Effectivement, rien que pour cette raison ça vaut le coup de le faire. Le gain de temps observé au chargement aussi d'ailleurs.

C'est une bonne habitude à prendre. Perso, systématiquement à la fin de mes pages PHP, je fais un mysql_close() :wink:
 
WRInaute passionné
Ohax a dit:
On peut aussi le faire avant la fin :wink:.

Juste après les requêtes :)
Oui, c'est vrai. :)

C'est juste que je gère mes meta description et balises title avec une bdd donc en fait j'ai un include en haut pour ça et j'ai un include en bas pour fermer MySQL. C'est assez pratique je trouve et au moins je ne l'oublie pas :wink:
 
Discussions similaires
Haut