Когда я должен закрыть соединение БД? - PullRequest
5 голосов
/ 11 февраля 2010

Обязательно ли закрывать соединение в PHP-скрипте?

Ответы [ 3 ]

5 голосов
/ 11 февраля 2010

В зависимости от конфигурации вашего сервера БД существует ограничение на возможное количество одновременно открытых к нему соединений.

Итак, если ваш скрипт:

  • делает несколько запросов
  • и затем выполняет длинные вычисления, не выполняя никаких запросов

Может быть интересно закрыть соединение после выполнения всех ваших запросов - и открывать соединение только тогда, когда оно становится необходимым.


Тем не менее, обратите внимание, что соединения закрываются, когда скрипт завершается; Это означает, что если у вас нет wya, чтобы быть уверенным, что вы завершили выполнение запросов, вам не нужно закрывать соединение: оставляя его открытым, вы можете выполнять дополнительные запросы всякий раз, когда это необходимо .

(Это особенно верно, если ваши страницы создаются с использованием нескольких отдельных и независимых компонентов, которые все могут выполнять запросы к БД)


Для приложений, которые я пишу, я обычно:

  • Открытие соединения по первому запросу (что означает, что соединение не открывается, если запрос не отправляется)
  • Никогда не закрывайте соединение: поскольку мои страницы созданы с использованием множества компонентов, я не могу точно знать, что соединение больше не понадобится.
3 голосов
/ 11 февраля 2010

Да, это так. Как правило, это так: открывайте соединения как можно позже и закрывайте их как можно скорее. В большинстве современных систем / сред соединения подключаются, поэтому нет проблем (снижение производительности) при их постоянном открытии и закрытии.

0 голосов
/ 11 февраля 2010

Когда скрипт php завершает работу, все объекты, переменные теряются даже в db connection.else с новым объектом соединения db. Но, как правило , лучше открывать и закрывать соединение, когда оно вам не нужно.

...