Действительно ли закрытие является важным подключением mysql?

Почему переменная не была обновлена?

  • Постфикс: передает текущее значение i в функцию, а затем увеличивает его.
  • Префикс: увеличивает текущее значение и передает его функции.

Линии, где ты ничего не делаешь, не имеют значения.

Обратите внимание, что это также верно для заданий:

i = 0;
test = ++i;  // 1
test2 = i++; // 1
83
задан John Yeary 7 January 2013 в 03:47
поделиться

4 ответа

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

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

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

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

87
ответ дан 24 November 2019 в 08:56
поделиться

Это критично? Не так много

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

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

9
ответ дан 24 November 2019 в 08:56
поделиться

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

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

4
ответ дан 24 November 2019 в 08:56
поделиться

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

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

2
ответ дан 24 November 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: