URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 2905
[ Назад ]

Исходное сообщение
"Что лучше использовать mysql_pconnect()  mysql_connect() ?"

Отправлено kD , 15-Дек-04 14:36 
И в каких случаях ? Я всегда использовал mysql_connect(), но тут наткнулся на mysql_pconnect() и понимая, что соединение с базой - это тяжелая по ресурсам операция, хочется узнать не лучше ли использовать mysql_pconnect() ? И какае есть минусы в обоих случаях....заранее спасибо.

Содержание

Сообщения в этом обсуждении
"Что лучше использовать mysql_pconnect()  mysql_connect() ?"
Отправлено MeLLowD , 15-Дек-04 14:45 
Лучше mysql_connect. Дело в том, что pconnect не закрывается ни при завершении скрипта, ни при вызове mysql_close. Можно нарваться на слишком большое количество одновременно открытых коннектов.

"Что лучше использовать mysql_pconnect()  mysql_connect() ?"
Отправлено kD , 15-Дек-04 15:59 
>Можно нарваться на слишком большое количество
>одновременно открытых коннектов.

Да, но есть переменная wait_timeout в Mysql, которую, если сделать поменьше и база сама будет уничножать коннекты.



"Что лучше использовать mysql_pconnect()  mysql_connect() ?"
Отправлено MeLLowD , 15-Дек-04 16:48 
>>Можно нарваться на слишком большое количество
>>одновременно открытых коннектов.
>
>Да, но есть переменная wait_timeout в Mysql, которую, если сделать поменьше и
>база сама будет уничножать коннекты.
А кокой тогда смысл использовать pconnect?



"Что лучше использовать mysql_pconnect()  mysql_connect() ?"
Отправлено kD , 15-Дек-04 18:24 
>А кокой тогда смысл использовать pconnect?

Смысл есть: У меня есть несколько скриптов, в каждом происходит обращение к базе, параметры соединения одинаковые, то есть тот же юзер, тот же пароль к тому же хосту. mysql_pconnect как раз не создает нового соединения для того же самого юзера с тем же паролем.

Допустим я вызываю 5 скриптов последовательно (как это просисходит в реальной работе)
То есть при использовании pconnect будет создано одно соединение при запуске первого скрипта, а для остальных 4-ех скриптов будет использовано уже существующее.
А При использовании connect мы получим 5 соединений с базой.

Вроде выйграть должны по скорости ? Или я что-то не понимаю ?


"Что лучше использовать mysql_pconnect()  mysql_connect() ?"
Отправлено Maxim Chirkov , 16-Дек-04 00:20 
>И в каких случаях ? Я всегда использовал mysql_connect(), но тут наткнулся
>на mysql_pconnect() и понимая, что соединение с базой - это тяжелая
>по ресурсам операция, хочется узнать не лучше ли использовать mysql_pconnect() ?

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

В pconnect функциях на моей памяти, не раз возникали ошибки реализации, что выливалось в утечке в ввиде накопления незакрытых коннектов. К тому же, насколько я понимаю, каждый pconnect актуален только в рамках одного дочернего apache процесса, т.е. если следующий запрос будет обрабатывать другой child (а так и будет), открытый в другом процессе pconnect останется невостребованным.


"Что лучше использовать mysql_pconnect()  mysql_connect() ?"
Отправлено kD , 16-Дек-04 16:47 
> К тому же,
>насколько я понимаю, каждый pconnect актуален только в рамках одного >дочернего
>apache процесса, т.е. если следующий запрос будет обрабатывать другой child (а
>так и будет), открытый в другом процессе pconnect останется >невостребованным.

Вот это уже важно - спасибо! Тогда действительно не стоит этим пользоваться.