Page 1 sur 1

Connexion Mysql

Publié : 09 sept. 2008, 17:28
par BberXIII81
Bonjour,
Juste une petite question concernant la connexion Mysql,
Est-il préférable d'en ouvrir et fermer une seule qui englobe mes conditions ou en ouvrir et fermer une dans chaque condition.

C'est assez compliqué à expliquer alors j'ai fait deux petits schémas:

Code : Tout sélectionner

Ouverture Mysql
     Condition1
          {
                 Action1
          }
     Condition2
          {
                 Action2
          }
Fermeture Mysql

Code : Tout sélectionner

     Condition1
          {
                 Ouverture Mysql
                 Action1
                 Fermeture Mysql
          }
     Condition2
          {
                 Ouverture Mysql
                 Action2
                 Fermeture Mysql
          }
Préférable en terme de protection et de performance (rapidité de traitement, ...)

En vous remerciant de vos conseils

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13

Publié : 09 sept. 2008, 18:53
par calimo
À ma connaissance, l'étape la plus lente, lors d'une opération avec la base de données, c'est la connexion (sauf si tu traites vraiment énormément de données sur de nombreuses tables). Il faut donc éviter au maximum de répéter l'opération. On placera donc la connexion en dehors de la boucle (et la déconnexion en fin, mais c'est implicite). Souvent ça se fait même tout au début dans un code de type header.
Plus généralement, on essaye de "sortir" de la boucle tout ce qui n'y est pas strictement nécessaire (la connexion en est une). Je choisirais donc ton code 1.

Niveau sécurité, je ne sais pas trop, mais je ne pense pas que ça ait d'impact : ce qui compte c'est que tu vérifies bien tout ce qui est passé à MySQL.

PS : en perl, il existe des applications comme catalyst qui démarrent un serveur, se connectent, et ne se déconnectent jamais, restant connectées au serveur de base de données, potentiellement pour toujours. Je n'ai pas connaissance de risque de sécurité liés spécifiquement à ce problème. :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1

Edition : je confond boucle et condition :oops: Le passage «on essaye de "sortir" de la boucle tout ce qui n'y est pas strictement nécessaire» reste cependant valable, le but étant de n'écrire les choses qu'une seule fois : si tu veux par la suite changer quelque chose, tu n'as pas besoin de le répéter partout.

Publié : 09 sept. 2008, 19:11
par BberXIII81
Tu me rassures, je pensais que laisser ma connexion ouverte toute ma page dépensait plus de ressources et ralentissait le traitement de celle-ci.
Je vais donc faire comme ce que tu me conseilles.
Je te remercie pour cette rapide réponse.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1

Publié : 09 sept. 2008, 22:36
par Benoit
Si tu utilises PHP il y a la fonction mysql_pconnect() qui te permet de réutiliser la dernière connexion ouverte, si jamais elle existe.

Publié : 09 sept. 2008, 22:40
par BberXIII81
Ok merci, je vais y jeter un oeil. :)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1