Intereting Posts
Как правильно получить контент и не нарушать html-теги с помощью strip_tags с substr? php регулярное выражение для получения определенного URL-адреса Необходимо получить все <img> из the_content (); в WordPress? $ _POST пуст по символам utf-8 Регулярное выражение для удаления всех слов, содержащих числа из предложения Zend Framework 2 устанавливает пользовательский макет и задает проблему Проверьте, сохранена ли модель laravel или выполнен запрос. Разбор классов, функций и аргументов в PHP htaccess mod-rewrite: ссылка на подкаталог от root-neglect dirs в подкаталоге? Данные формы и предварительный просмотр изображения после отправки формы PHP – Возвращает массив родителей из многомерного ассоциативного массива для паттерна Ошибка ключа API Карт Google PHP, как эхо-данные конкретных объектов из массива? проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 1 Как использовать открытый идентификатор в качестве системы входа в систему

Что лучше: mysql_connect или mysql_pconnect

Я новичок PHP, работающий с некоторыми сценариями, чтобы отображать некоторые новостные статьи из базы данных и хотел узнать несколько вещей.

  • Для открытия соединения с базой данных MySQL, которая является лучшим вариантом 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 на сильно загруженных сайтах, поэтому соединение будет повторно использоваться. Это может повысить скорость до двух раз …

Но, если вы не ожидаете высоких нагрузок; используйте нормальное соединение по причинам, о которых говорил Светлозар Ангель.

Пожалуйста, не отвечайте на этот вопрос больше, его попросили и ответили в другом месте. См. Ссылки выше.