Я использую PHP для запроса базы данных MySQL на своем веб-сайте. Пожалуйста, ответьте на следующие вопросы:
mysql_close()
когда я закончил с запросом базы данных в конце? Соединение останется открытым? Если да, то сколько времени? Если нет, то почему? mysql_close()
относится к производительности? Должен ли я открывать новое соединение каждый раз, когда требуется некоторый доступ к базе данных ИЛИ мне нужно сохранить только одно соединение и закрыть его в конце? Я бы посоветовал открыть соединение с базой данных во время фазы построения, повторно использовать это соединение во время всего выполнения вашего сценария (если он основан на OO, назначить переменную класса для подключения к базе данных и использовать $this->db
во время всего скрипта ) и закройте его во время уничтожения (или не заморачивайся при его закрытии, так как он все равно будет закрыт, даже если он не будет определен конкретно).
От php.net:
Использование mysql_close () обычно не требуется, поскольку непостоянные открытые ссылки автоматически закрываются в конце выполнения скрипта.
для производительности это зависит от ситуаций, как долго он используется, как долго он простаивает и т. д. (например, длительное выполнение). В большинстве случаев существует одноэлементный шаблон, по которому у вас есть одно открытое соединение, и делайте все запросы с помощью этого открытого дескриптора. Но это не совсем так, поскольку mysql_connect сам по себе является поддержкой:
Если второй вызов выполняется с mysql_connect () с теми же аргументами, новая связь не будет установлена, но вместо этого будет возвращен идентификатор ссылки уже открывшейся ссылки. Параметр new_link изменяет это поведение и заставляет mysql_connect () всегда открывать новую ссылку, даже если mysql_connect () был вызван ранее с теми же параметрами.
Таким образом, mysql_close не очень нужен, когда дело доходит до коротких сценариев.
Существует незначительная потеря производительности, чтобы закрыть соединение, по сравнению с использованием ресурсов, чтобы держать его открытым, когда он вам не нужен. Лучше закрыть соединение, как только вы закончите с ним, и откройте его снова, когда вам нужно.
Если вы используете непостоянные соединения, все открытые соединения MySQL будут автоматически закрыты, когда скрипт PHP завершит выполнение.