MySQL постоянное соединение - PullRequest
12 голосов
/ 13 августа 2010

Короче говоря, есть ли какие-то mysqli_pconnect для PHP и MySQL серверов с высокой нагрузкой, или мне нужно придерживаться mysql не улучшенного?И если да, то почему его убрали?

Ответы [ 3 ]

18 голосов
/ 13 августа 2010

Поддержка этого была введена в PHP 5.3.Для версий до этого PDO и - не дай бог - расширение mysql являются единственными опциями.

Цитируя руководство :

В отличие от расширения mysqlmysqli не предоставляет отдельной функции для открытия постоянных соединений.Чтобы открыть постоянное соединение, вы должны добавить p: к имени хоста при подключении.

10 голосов
/ 13 августа 2010

Я не беспокоюсь о постоянных соединениях в MySQL.Постоянные соединения предназначены для баз данных, таких как Oracle, в которых создание нового соединения происходит намного медленнее.

В MySQL установление соединения происходит относительно быстро (особенно если вы отключаете обратный поиск DNS).Не должно быть необходимости в постоянных соединениях с MySQL.Если ваше приложение критично к производительности, есть множество вещей, которые вы можете сделать с большей выгодой, чем беспокоиться о постоянных соединениях.

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

5 голосов
/ 12 июля 2012

На самом деле существует постоянная поддержка для библиотеки mysqli. Просто добавьте «p:» к имени хоста, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...