Page 1 sur 1

Instance Mysql ? Singleton ou pas ?

Posté : 09 août 2009, 21:00
par gtenthorey
Hello à tous,

Dans le cadre d'un projet php avec un trafic conséquent, je me posais la question suivante. Faut-il gérer les connexions requêtes etc.. avec une seule et même instance Mysql (singleton) est-ce qu'il y a un réel gain en termes de performance ?

Actuellement j'ai effectué une classe simple "Mysql" avec différentes méthodes qui retournent un tableau etc..

Donc en gros chaque fois je crée un nouveau objet "Mysql" j'effectue la requête puis je ferme la connexion.
Avez-vous des retours là dessus, avantages ou inconvénients ?

Merci pour votre avis :)

Re: Instance Mysql ? Singleton ou pas ?

Posté : 09 août 2009, 21:44
par Sékiltoyai
Donc en gros chaque fois je crée un nouveau objet "Mysql" j'effectue la requête puis je ferme la connexion.
C'est la pratique la plus coûteuse que l'on puisse envisager.
Une connexion SQL se laisse ouverte de la première à la dernière requête.

Re: Instance Mysql ? Singleton ou pas ?

Posté : 09 août 2009, 21:55
par gtenthorey
Pourtant c'est une manière plus sécurisée non ?

Donc il faudrait utiliser la même instance à chaque fois, mais ça me fait soucis dans le sens où imaginons si j'ai 500 personnes en ligne est-ce que 500 instances simultanées ça tourne toujours ?

Le singleton est utilisé souvent dans votre cas ? Personnellement je vois pour utiliser cela pour Mysql, mais je vois pas trop les autres cas qui seraient propices à utiliser le singleton.

Re: Instance Mysql ? Singleton ou pas ?

Posté : 09 août 2009, 22:09
par Sékiltoyai
Pourtant c'est une manière plus sécurisée non ?
En quoi ?
Donc il faudrait utiliser la même instance à chaque fois, mais ça me fait soucis dans le sens où imaginons si j'ai 500 personnes en ligne est-ce que 500 instances simultanées ça tourne toujours ?
Si le site est pas trop mal conçu, tu génères une page en moins d'une seconde, et on reste selon les sites en moyenne au moins une minute sur une page. Quand tu as 500 personnes connectées, pour que tu réussisses à ouvrir 500 connexions SQL, il faudrait que les 500 personnes cliquent sur un lien en même temps au dixième de seconde près. C'est un peu improbable quand même, ne trouves-tu pas ?
Le singleton est utilisé souvent dans votre cas ? Personnellement je vois pour utiliser cela pour Mysql, mais je vois pas trop les autres cas qui seraient propices à utiliser le singleton.
C'est très utilisé pour les connexions SQL.

Re: Instance Mysql ? Singleton ou pas ? // Resolu

Posté : 09 août 2009, 22:47
par gtenthorey
okay ben merci pour ces informations je vais améliorer ma classe en faisant un singleton :)

Re: Instance Mysql ? Singleton ou pas ?

Posté : 12 août 2009, 14:51
par enneite
Hello à tous,


Donc en gros chaque fois je crée un nouveau objet "Mysql" j'effectue la requête puis je ferme la connexion.
Avez-vous des retours là dessus, avantages ou inconvénients ?

Merci pour votre avis :)
avantage: ?? sécurité ?? non je ne pensepas !
inconvenient : gros plantage de site garanti si le traffic est important!!!!!!!!!

on avait déjà parler de ça dans une discu, mais je ne la retrouve plus...

Re: Instance Mysql ? Singleton ou pas ?

Posté : 12 août 2009, 15:22
par AB
Tu as plusieurs exemples ici