Замечание:
Этот раздел не актуален для 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.