mysql_pconnect
позволяет модулю Apache mod_php создавать пулы соединений. Вы все еще можете вызвать mysql_close
, но mod_php фактически не закроет его; это просто сделает недействительным ваш дескриптор ресурса. К сожалению, модуль не имеет никакой конфигурации для этого, поэтому пул соединений подключается сервером MySQL через его параметр wait_timeout
. Значение по умолчанию достаточно высокое, поэтому, если вы хотите воспользоваться этим преимуществом, вам, вероятно, захочется уменьшить эту переменную.
Пул соединений сохраняет две вещи: настройку соединения и создание потока MySQL. Настройка соединения с MySQL очень быстрая по сравнению с другими базами данных, но веб-сайт с высоким спросом все еще может получить выгоду от сокращения этого шага. Стоимость создания потоков в MySQL в большей степени зависит от базовой ОС, но все же может быть выгодной для загруженного сайта.
Оба аспекта необходимо рассмотреть в более широкой картине скорости веб-сайта и нагрузки, которую он представляет в вашей базе данных. Можно использовать потоки соединений в базе данных с достаточно занятым сайтом, используя пул соединений. Существует также аспект, который требует от приложения все возможное, чтобы соединение оставалось в согласованном состоянии, поскольку вы больше не можете полагаться на закрытие соединения для выполнения таких операций, как разблокировка таблиц и транзакции отката.
Более подробная информация содержится в документации PHP .