Постоянные соединения вручную (*только* версии до 1.1.4)

Замечание:

Этот раздел не актуален для 1.2.0+. В 1.2.0+ соединения всегда постоянны и управляются автоматически драйвером. Если вы используете версию 1.2.x (а не 1.3.x или более позднюю), смотрите MongoPool для получения дополнительной информации о пуле.

Создание нового соединения к базе данных происходит очень медленно. Чтобы свести к минимуму количество соединений, которые вам нужно установить, вы можете использовать постоянные соединения. Постоянное соединение сохраняется в PHP, поэтому вы можете использовать одно и то же соединение для нескольких запросов.

Например, эта простая программа подключается к базе данных 1000 раз:

<?php

for ($i=0$i<1000$i++) {
  
$m = new MongoClient();
}

?>

Выполнение займет приблизительно 18 секунд. Если мы изменим его, чтобы использовать постоянное соединение,

<?php

for ($i=0$i<1000$i++) {
  
$m = new MongoClient("localhost:27017", array("persist" => "x"));
}

?>

... то, для выполнения требуется менее 0,02 секунды, поскольку выполняется только одно соединение с базой данных.

Постоянные соединения нуждаются в строке идентификатора (в приведенном выше примере это "x"), чтобы однозначно идентифицировать их. Для использования постоянного соединения имя хоста, порт, постоянная строка и учетные данные для аутентификации (имя пользователя, пароль и база данных, если они указаны) должны соответствовать существующему постоянному соединению. В противном случае будет создано новое соединение с этой идентифицирующей информацией.

Постоянные соединения настоятельно рекомендуются и должны всегда использоваться, если нет веских причин не делать этого. Большинство причин, по которым они не рекомендуются для реляционных баз данных, не имеют отношения к MongoDB.