10
votes

Comment fonctionne la connexion de base de données dans php-mysql

est-il préférable de fermer la connexion après que chaque requête soit exécutée ou de mettre la connexion, puis de PHP fermera automatiquement cette connexion.

Lequel est le meilleur et pourquoi?


0 commentaires

7 Réponses :


7
votes

Ouvrez la connexion juste une fois. L'ouverture et la fermeture d'une connexion prend du temps aussi. Et comme vous l'avez déjà dit, PHP Ferme les connexions ouvertes à la fin de l'exécution automatiquement .

Alors appelez mysql_connect Chaque fois que vous avez besoin d'une connexion et laissez PHP fermer à la fin. MySQL_Connect Vérification des connexions déjà existantes Vous n'avez donc pas besoin de vous inquiéter que l'appelant mysql_connect avec les mêmes paramètres ouvrira une nouvelle connexion à chaque fois. Vous pouvez également utiliser connexions persistantes qui peuvent être utilisées pour plus de juste une seule exécution de script.


0 commentaires

0
votes

Il est peut-être préférable d'utiliser une connexion persistante ou un pool de connexions.


0 commentaires

0
votes

C'est généralement une bonne pratique pour fermer les connexions que vous ouvrez, ranger comme vous allez.

Que vous souhaitiez ouvrir et fermer un pour chaque requête dépend vraiment de votre application. Si cela n'interagit que très rarement avec la base de données, il peut être préférable de le faire de cette façon. Ou vous voudrez peut-être contenir un pool de connexions ouvertes à utiliser par tous, n'ouvrez qu'une nouvelle lorsque tous les autres sont actuellement utilisés.


0 commentaires

1
votes

De ce que j'ai l'expérience est préférable de laisser la connexion ouverte. Mais cela dépend du comportement de votre application. Si vous faites un grand nombre de calculs ou de services de connexion, des services externes pouvant prendre du temps pour terminer, il est préférable de fermer la connexion et de l'ouvrir à nouveau après avoir terminé la partie consommatrice de temps. Si vous n'avez pas beaucoup de visiteurs où vous pouvez appuyer sur la limite du nombre de connexions SQL, laissez la connexion ouverte tout le temps. Il faut du temps pour l'ouvrir à nouveau.


0 commentaires

0
votes

Connectez-vous à votre base de données une fois, lors de l'initialisation du script; Gardez la connexion ouverte pendant l'exécution de votre script et envoyez des requêtes supplémentaires à travers elle.

Ce qui précède est un scénario d'utilisation typique, où vous avez un script PHP court-circuit (probablement sur un serveur WebServer) exécutant plusieurs requêtes SQL. À moins que votre script ne fonctionne plus de quelques heures, ne vous inquiétez pas de fermer la connexion entre les requêtes.

Chaque fois que vous vous connectez au serveur SQL, le script PHP et le serveur doivent passer par une négociation complexe (relativement) complexe: établissez une connexion sur le réseau, vérifiez que les deux côtés veulent parler mysql, vérifiez que le script A des autorisations à se connecter, et cetera. Gardez la connexion DB jusqu'à ce que c'est beaucoup plus rapide et plus efficace.


0 commentaires

5
votes

Cela n'a pas vraiment d'importance. Si votre script PHP va fermer la connexion pour vous à la fin du script, il n'y a pas vraiment beaucoup de point le faire vous-même.

La seule raison pour laquelle vous souhaitez mettre ce code supplémentaire dans le script pour fermer la connexion après avoir fait toutes vos questions est si vous souhaitez libérer une petite mémoire, par exemple. Votre script est déjà la mémoire affamée en utilisant des bibliothèques telles que GD2.

fermer la connexion après chaque requête et ouvrir une autre pour faire une autre requête est la mémoire affamée et une perte de temps énorme. Dans l'ensemble, ne vous embêtez pas vraiment!


0 commentaires

2
votes

Laissez la connexion ouverte, si votre script utilise la connexion au hasard. S'il existe un groupe d'emplois qui utilisent la connexion avec certains écart de temps, vous pouvez fermer la connexion après chaque travail de groupe.


0 commentaires