Для проекта я использую новый драйвер MongoDB для PHP с библиотекой (см.: https://docs.mongodb.com/php-library/master/), а не устаревший.
Мы используем PHP 7 как FPM.
Недавно я профилировал с помощью XDEBUG и понял, что первый запрос к базе данных значительно медленнее, чем второй, например
Session::validate -> Account::find 38ms
getProfile -> Account::find 2ms
Где Account::find
будет выполнять запрос на получение одного документа по его _id
, и оба вызова будут искать разные документы.
Два моих вопроса, которые возникают
- Насколько я понимаю, первый запрос намного медленнее второго, потому что драйвер должен установить соединение с сервером базы данных, а в нашем случае также должен пройти аутентификацию. Это соединение не сохраняется между выполнениями скрипта. Это правильно?
- Если (1) верно, есть ли способ сохранить это соединение с новым драйвером? Насколько я понимаю, со старым драйвером соединения с базой данных могли сохраняться между запросами. (http://php.net/manual/de/mongo.connecting.persistent.php)