Действительно ли важно закрыть эффективность соединений mysql, или она автоматически закрывается после запуска php-файла?
Из документации :
Примечание. Ссылка на сервер будет закрыта, как только выполнение скрипта закончится, если только оно не закрыто раньше, явно вызвав mysql_close ().
Если ваш сценарий имеет достаточную сумму обработки для выполнения после получения результата и получил полный набор результатов, вы обязательно должны закрыть соединение. Если вы этого не сделаете, есть вероятность, что сервер MySQL достигнет предела подключения, когда веб-сервер находится под большим использованием. Если вы не можете закрыть соединение с MySQL до конца сценария, это чище, но не нужно делать это явно.
Я не уверен, как fastcgi влияет на вещи. На одной странице утверждается, что сборка PHP, поддерживающая fastcgi, создаст постоянные соединения, даже для mysql_connect. Это противоречит документации в том, что соединение закрывается, когда процесс, а не сценарий, заканчивается. Вместо того, чтобы тестировать его, я буду рекомендовать использовать mysql_close (). На самом деле, я рекомендую использовать PDO , если он доступен.
Это важно? Не так много
Считается ли это хорошей практикой? Да.
Я не понимаю, почему вы не хотели бы его закрывать.
При использовании чего-то вроде cgi совершенно не нужно закрывать ваши соединения mysql, так как они автоматически закрываются в конце выполнения скрипта. При использовании постоянных технологий, таких как mod_perl и других, которые поддерживают ваши связи между запросами, важно следить за соединениями, глобальными переменными и т. Д.
В принципе, для постоянных данных очищайте себя. Для тривиальных, непостоянных данных все это исчезнет, когда запрос закончится в любом случае. В любом случае, наилучшая практика – всегда закрывать ваши соединения.
По завершении выполнения скрипта завершается завершение. Если вы не открыли постоянное соединение. В идеале вы должны освободить ресурс (соединение здесь), как только вы закончите с ним. Если у вас не будет хорошего шанса, что вам это понадобится очень скоро в казни.
Пул соединений или использование постоянных подключений (если это то, что вы имели в виду) – хорошая идея, если вы находитесь за единственным сервером базы данных. Однако, если есть больше серверов, и вы балансируете нагрузку, это может повредить распределению работы. Обычно некоторые клиенты выполняют тяжелые запросы, а другие – более легкие. Поэтому, если одно и то же соединение используется поверх n, некоторые серверы будут нажимать на большую нагрузку, а другие будут использоваться. Рассмотрите возможность использования меньшего размера ttls и переменной пула соединений.