Я новичок PHP, работающий с некоторыми сценариями, чтобы отображать некоторые новостные статьи из базы данных и хотел узнать несколько вещей.
mysql_connect
или mysql_pconnect
? Если вы собираетесь писать веб-страницу, нет необходимости в постоянном подключении. Это требует слишком много ресурсов. Используйте mysql_connect. Минимизируйте время, когда ваше соединение db открыто и не используется столько, сколько вы можете. Откройте, выберите то, что вы хотите, закройте. Он не должен оставаться открытым, пока пользователи просто читают. Соединение будет использоваться в конце концов, если они ответят – INSERT / перейти на другую страницу.
Вот несколько хороших моментов в отношении НЕ ИСПОЛЬЗОВАНИЯ постоянного соединения в веб-приложениях
Когда вы блокируете таблицу, обычно она разблокируется, когда соединение закрывается, но поскольку постоянные соединения не закрываются, любые таблицы, которые вы случайно оставите заблокированными, будут оставаться заблокированными, и единственный способ их разблокировать – дождаться, когда соединение будет тайм-аут или убейте процесс. Такая же проблема блокировки возникает при транзакциях. (См. Комментарии ниже 23 апреля 2002 года и 12 июля 2003 года)
Обычно временные таблицы удаляются, когда соединение закрывается, но поскольку постоянные соединения не закрываются, временные таблицы не являются временными. Если вы не будете явно удалять временные таблицы, когда вы закончите, эта таблица будет уже существовать для нового клиента, повторно использующего одно и то же соединение. Эта же проблема возникает при настройке переменных сеанса. (См. Комментарии ниже 19 ноября 2004 года и 07 августа 2006 года)
Если PHP и MySQL находятся на одном сервере или в локальной сети, время соединения может быть незначительным, и в этом случае нет преимуществ для постоянных соединений.
Apache не работает с постоянными соединениями. Когда он получает запрос от нового клиента, вместо использования одного из доступных дочерних элементов, у которого уже открыто постоянное соединение, он имеет тенденцию порождать нового ребенка, который должен затем открыть новое соединение с базой данных. Это приводит к избыточным процессам, которые просто спят, тратят ресурсы и вызывают ошибки при достижении максимальных подключений, а также при любых преимуществах постоянных соединений. (См. Комментарии ниже, 03-Feb-2004, и сноску на http://devzone.zend.com/node/view/id/686#fn1 )
Вы также должны посмотреть на mysqli и pdo . mysql-extension довольно старый и не поддерживает подготовленные операторы mysqli. И pdo поддерживает несколько баз данных без изменения запросов.
Вы должны использовать mysql_pconnect на сильно загруженных сайтах, поэтому соединение будет повторно использоваться. Это может повысить скорость до двух раз …
Но, если вы не ожидаете высоких нагрузок; используйте нормальное соединение по причинам, о которых говорил Светлозар Ангель.
Пожалуйста, не отвечайте на этот вопрос больше, его попросили и ответили в другом месте. См. Ссылки выше.