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.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top