Достаточно частая ситуация, когда скрипт закончил всю работу с базой и переходит к какой-то длительной обработке данных. В такой ситуации соединение с БД остаётся открытым, но никто им не пользуется, в результате чего при большой нагрузке другие клиенты могут получить ошибку:
MySQL: ERROR 1040: Too many connections
Незадачливый амин или разработчик моментально предложит увеличить количество соединений. Но будет ли это хорошим решением? Не всегда.
Иногда гораздо эффективнее закрыть соединение с базой в тот момент, когда выполнен последний запрос и других запросов в приложении больше не будет. В Symfony 3.4 это можно сделать так:
$entityManager->getConnection()->close();
Таким простым способом можно решить сразу две проблемы:
- Устранить причину возникновения ошибки
- Увеличить производительность всей системы
Сохранив при этом потенциал к оптимизации и запас производительности системы.