Подтвердить что ты не робот

Является ли закрытие соединения mysql важным?

Насколько важно закрыть эффективность соединений mysql, или автоматически закрывается после запуска файла php?

4b9b3361

Ответ 1

В документации :

Примечание. Ссылка на сервер будет закрыта, как только выполнение script завершается, если только он не закрыт раньше, явно вызвав mysql_close().

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

Я не уверен, как fastcgi влияет на вещи. Одна страница утверждает, что сборка PHP, поддерживающая fastcgi, создаст постоянные соединения, даже для mysql_connect. Это противоречит документации в том, что соединение закрывается, когда заканчивается процесс, а не script. Вместо того, чтобы тестировать его, я буду рекомендовать использовать mysql_close(). На самом деле, я рекомендую использовать PDO, если он доступен.

Ответ 2

Это важно? Не так много

Считается ли это хорошей практикой? Да.

Я не понимаю, почему вы не хотели бы его закрывать.

Ответ 3

При использовании чего-то вроде cgi, совершенно не нужно закрывать ваши соединения mysql, так как они автоматически закрываются в конце выполнения script. При использовании постоянных технологий, таких как mod_perl и других, которые поддерживают ваши соединения между запросами, важно следить за соединениями, глобальными переменными и т.д.

В принципе, для постоянных данных очищайте себя. Для тривиальных, непостоянных данных все это исчезнет, ​​когда запрос закончится в любом случае. В любом случае, наилучшая практика - всегда закрывать ваши соединения.

Ответ 4

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

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