Je suis un PHP Newbie Travailler quelques scripts pour afficher des articles de presse d'une base de données et je voulais trouver quelques choses. P>
mysql_connect code> ou mysql_pconnect code>? li>
- Quels sont les avantages ou les inconvénients de l'utilisation d'une connexion persistante à la base de données? LI>
- et dans quel type de scénario une connexion persistante sera appelée? Li>
ul>
3 Réponses :
Si vous allez écrire une page Web, il n'y a pas besoin de connexion persistante. Il faut trop de ressources. Utilisez mysql_connect. Minimisez le temps que votre connexion DB est ouverte et non utilisée autant que vous le pouvez. Ouvrir, aller chercher ce que vous voulez, fermez. Il n'a pas besoin de rester ouvert pendant que les utilisateurs ne font que lire. La connexion sera utilisée éventuellement si elles répondent - insérer / aller à une autre page .. p>
ici sont de bons points sur sans utiliser Strong> Connexion persistante dans les applications Web P>
Lorsque vous verrouillez une table, il est normalement déverrouillé lorsque la connexion se ferme, mais comme les connexions persistantes ne se ferment pas, aucune tables vous
laisser accidentellement verrouillé restera verrouillé et le seul moyen de
Déverrouillez-les, c'est attendre que la connexion soit temporelle ou tuez la
traiter. Le même problème de verrouillage se produit avec les transactions. (Voir
Commentaires ci-dessous le 23-APR-2002 & 12-JUL-2003) P> LI>
Les tables normalement temporaires sont supprimées lorsque la connexion se ferme, mais comme les connexions persistantes ne se ferment pas, des tables temporaires ne sont pas
si temporaire. Si vous ne laissez pas explicitement abandonner des tables temporaires lorsque vous
sont terminés, cette table existera déjà pour un nouveau client réutilisant la
même connexion. Le même problème se produit avec la séance de réglage
variables. (Voir les commentaires ci-dessous le 19 nov-2004 et 07-août 2006) P> Li>
Si PHP et MySQL sont sur le même serveur ou le même réseau local, le temps de connexion peut être négligeable, auquel cas il n'y a pas d'avantage
aux connexions persistantes. P> li>
Apache ne fonctionne pas bien avec des connexions persistantes. Lorsqu'il reçoit une demande d'un nouveau client, au lieu d'utiliser l'un des
enfants disponibles qui a déjà une connexion persistante ouverte, elle
a tendance à apparaître un nouvel enfant, qui doit alors ouvrir une nouvelle base de données
lien. Cela provoque des processus excédentaires qui dorment juste,
gaspiller des ressources et causer des erreurs lorsque vous atteignez votre maximum
Les connexions, plus il défait tout bénéfice des connexions persistantes.
(Voir les commentaires ci-dessous le 03-février-2004 et la note de bas de page à
http://devzone.zend.com/node/view/id/686# FN1 ) P> LI>
ul>
blockQuote>
La raison pour laquelle vous utilisez habituellement MySQL_PConnect est exactement lorsque vous faites une application Web afin de ne pas avoir à effectuer le fonctionnement coûteux de la connexion à la base de données pour chaque page rendue.
Et pourquoi ma connexion devrait-elle rester ouverte pendant que je lis mon horoscope par exemple, il peut prendre 1 heure après que je demande une autre page ?!
J'ai vu cet article quelque part avant ... regarde la copie collé. Quoi qu'il en soit, cette rubrique a été explorée avant: Stackoverflow.com/questions/1128329/...
Vous devriez probablement citer la source de ces points: PHP.net/ Manuel / FR / FONCTION.MYSQL-PCONNECT.PHP # 85670 . L'utilisation de MySQL_PConnect est plus un fardeau en termes d'atteinte plus rapidement à la limite de connexion et de gérer cela, que la consommation de ressources réelle.
Vous devez utiliser MySQL_PConnect sur des sites hautement chargés. La connexion serait donc réutilisée. Cela peut améliorer la vitesse jusqu'à deux fois ... P>
Mais, si vous ne vous attendez pas à des charges élevées; Utilisez Normal Connect pour des raisons Svetlozar Angelov mentionnées ci-dessus. P>
Dupliquer de Stackoverflow.com/questions/247807/...