[AlternC-dev] connect ou pconnect

Retour à l'archive de la liste
Le site d'AlternC
Google Custom Search

The Anarcat anarcat at anarcat.ath.cx
Mar 19 Oct 16:53:05 CEST 2004


On a effectivement tendance à croire que les connections persistantes
(pconnect()) vont aider à alléger la charge d'un serveur, mais il n'en
est rien. Dans mon expérience, les mysql_pconnect() épuisent
rapidement les connexions disponibles du serveur MySQL, et il est plus
fiable et efficace d'utiliser des mysql_connect() normaux.

Pourquoi? Eh bien c'est simplement à cause que le pconect ne
fonctionne tout simplement pas sous PHP. Chaque "process" PHP est très
éphémère: il est chargé à l'exécution d'une page et souvent déchargé à
la fin de l'exécution de ladite page. La "cache" de connection ne
fonctionne pas *entre* les différentes pages PHP, contrairement à ce
que l'on aurait tendance à croire.

L'effet du mysql_pconnect() est alors catastrophique: en plus d'avoir,
comme dans le cas du mysql_connect(), plusieurs connexions
simultanées, ces connexions ne se ferment pas à la fin de l'exécution
du script et reste ouverte jusqu'à l'épuisement d'un "timeout", en
consommant les resources du serveur MySQL.

mysql_pconnect() == evil.

C'Est pourquoi Koumbit recommande l'utilisation du flag suivant dans
le php.ini:

; Allow or prevent persistent links.
mysql.allow_persistent = Off

Ref: http://koumbit.org/wiki/Proc%c3%a9dures/PhpDotIni

Je suggère donc fortement que AlternC n'utilise pas
mysql_pconnect(). D'ailleurs, j'ai eu des problèmes avec AlternC
directement à cause de ceci:

http://bugs.koumbit.net/bug_view_page.php?bug_id=0000077

Si ce n'était que de moi, je ferais un search & replace de tous les
pconnect()s dans le source de AlternC.

A.
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: signature.asc
Type: application/pgp-signature
Taille: 189 octets
Desc: Digital signature
URL: <http://lists.alternc.org/arch/dev/attachments/20041019/d34e5b0c/attachment.pgp>


Plus d'informations sur la liste de diffusion Dev