Nota:
Esta sección no es relevante para 1.2.0+. En 1.2.0+, siempre las conexiones que son persistentes son administradas automáticamente por el driver. Si se utiliza una versión 1.2.x (pero no 1.3.x o posterior), véase MongoPool para más información sobre agrupaciones.
Crear una nueva conexión cada vez a la base de datos es muy lento. Para minimizar el número de conexiones que se necesite, se pueden usar las conexiones persistentes. Una conexión persistente es guardada por PHP, para que pueda usarse la misma conexión en múltiples peticiones.
Por ejemplo, este simple programa para conectarse 1000 veces a la base de datos:
<?php
for ($i=0; $i<1000; $i++) {
$m = new MongoClient();
}
?>
Esto tarda apróximadamente 18 segundos en ejecutarse. Pero si lo cambiamos para que utilice una conexión persistente:
<?php
for ($i=0; $i<1000; $i++) {
$m = new MongoClient("localhost:27017", array("persist" => "x"));
}
?>
...tardará menos de 0.02 segundos en ejecutarse, ya que solo se realiza una sola conexión a la base de datos.
Las conexiones persistentes necesitan indicarse usando la variable de identificación (tal y como se muestra "x" en el ejemplo anterior). Para que la conexión persistente pueda usarse, el hostname, puerto, variable persist y las credenciales de autenticación (nombre de usuario, contraseña y base de datos) debe coincidir con una conexión persistente ya existente. De lo contrario, se creará una nueva conexión los datos proporcionados.
Las conexiones persistentes son altamente recomendables y se deberían usar siempre en producción a no ser que exista una razón con fundamento para hacer lo contrario. La mayoría de razones por las cuales no son recomendadas para bases de datos relacionales son totalmente irrelevantes para MongoDB.