Зачем использовать mysqli_close()?

Есть ли причина, по которой я должен закрыть соединение после запроса или в конце script?

Каковы преимущества выполнения/не делать?

Ответ 1

Соединение (если не постоянное) всегда закрыто в конце script, поэтому теоретически вам не нужно закрывать его самостоятельно.

Тем не менее, если ваш PHP script требует много времени для выполнения, рекомендуется закрыть соединение, когда вам больше не нужно делать какой-либо запрос к базе данных - по крайней мере, если длинные вычисления после запросов.

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


Причина, по которой мы часто не закрываем связи, состоит в следующем:

  • Обычно мы не знаем, когда мы выполнили все наши запросы - это особенно верно на страницах, которые сделаны из множества небольших "блоков"; каждый из них является независимым от других и может самостоятельно выполнять запросы; поэтому, когда мы можем закрыть соединение?
  • веб-страницы, как правило, довольно быстро генерируются, поэтому мы действительно не беспокоимся о закрытии соединения с БД.

Ответ 2

Преимущество состоит в том, что если вы собираетесь выполнять длительную обработку, но завершили запрос к базе данных, тогда нет точки, открывающей соединение. То же самое относится к открытию сеанса пользователя (который блокирует другие запросы).

Примером этого может быть создание большого отчета в формате PDF. Это может занять 20-30 + секунд, чтобы создать и записать файл, но вы получите все необходимые данные за первую секунду.

Обычно вы также можете сделать это автоматически (при условии, что соединение не является постоянным).