Les connexions persistantes manuelles (version supérieure à 1.1.4 *uniquement*)
Note:
Cette section n'est pas pertinente pour les versions 1.2.0+. En 1.2.0+, les connexions sont toujours persistantes et gérées automatiquement par le driver. Si vous utilisez la version 1.2.x (mais non 1.3.x ou supérieur), reportez-vous à la méthode MongoPool pour plus d'informations sur les files d'attente de connexions.
La création de nouvelles connexions à la base de données est une opération lente. Pour minimiser le nombre de connexions que vous devez effectuer, vous pouvez utiliser les connexions dites "persistantes". Une connexion persistante est sauvegardée par PHP, et ainsi, vous pourrez utiliser la même connexion pour toutes vos requêtes.
Par exemple, ce programme simple se connecte à la base de données 1000 fois :
<?php
for ($i=0; $i<1000; $i++) {
$m = new MongoClient();
}
?>
Son exécution prend approximativement 18 secondes. Si vous changez ce code pour utiliser les connexions persistantes :
<?php
for ($i=0; $i<1000; $i++) {
$m = new MongoClient("localhost:27017", array("persist" => "x"));
}
?>
... il ne prend plus que .02 secondes, vu qu'il ne réalise réellement qu'une seule connexion à la base de données.
Les connexions persistantes ont besoin d'une chaîne d'identification (qui est "x" dans notre précédent exemple) afin de les identifier de façon unique. Afin d'utiliser une connexion persistante, le nom de l'hôte, le port, la chaîne d'identification, le nom d'utilisateur ainsi que le mot de passe (si fourni) doivent correspondre avec une connexion persistante existante. Sinon, une nouvelle connexion sera créée avec ces informations d'identification.
Les connexions persistantes sont hautement recommandées et devraient être systématiquement utilisées en production sauf si une très bonne raison indique le contraire. La plupart des raisons qui font qu'elles ne sont pas recommandées dans le cas des bases de données relationnelles ne sont pas applicables pour MongoDB.
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mongo.connecting.persistent.manual.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.