Предполагается, что основной единицей исполнения является целый скрипт. Прежде всего, вы хотите применить ресурсы (например, базу данных), чтобы, эффективно и результативно, это был весь единый сценарий.
Однако, PHP, Apache / IIS / что угодно, имеют свои собственные жизни; и они способны использовать соединения, которые вы открываете за пределами жизни вашего сценария. В этом значение постоянных (или объединенных) соединений.
Вернуться к вашему сценарию. Оказывается, у вас есть много возможностей проявить творческий подход к использованию этого соединения во время его выполнения.
Типичный наивный сценарий будет стремиться снова и снова устанавливать соединение, подбирая локально подходящие клочки данных, связанные с заданными объектами / модулями / выбранными опциями. Именно здесь процедурная методология может наложить штраф на это соединение, открывая, запрашивая, получая и закрывая. (Обратите внимание, что любой отдельный запрос будет оставаться живым до тех пор, пока он не будет явно закрыт или сценарий не завершится. Обратите внимание, что соединение и запрос - это не одно и то же. Запросы связывают таблицы; соединения связывают ... соединения (в большинстве случаев сопоставляется с сокетами). Таким образом, вы должны осознавать правильную экономию при использовании обоих.
Самая экономичная стратегия в отношении запросов - иметь как можно меньше. Я часто пытаюсь создать более или менее сложный объединенный запрос, который возвращает полный набор данных, а не разбивает запросы на маленькие части.