И в каких случаях ? Я всегда использовал mysql_connect(), но тут наткнулся на mysql_pconnect() и понимая, что соединение с базой - это тяжелая по ресурсам операция, хочется узнать не лучше ли использовать mysql_pconnect() ? И какае есть минусы в обоих случаях....заранее спасибо.
Лучше mysql_connect. Дело в том, что pconnect не закрывается ни при завершении скрипта, ни при вызове mysql_close. Можно нарваться на слишком большое количество одновременно открытых коннектов.
>Можно нарваться на слишком большое количество
>одновременно открытых коннектов.Да, но есть переменная wait_timeout в Mysql, которую, если сделать поменьше и база сама будет уничножать коннекты.
>>Можно нарваться на слишком большое количество
>>одновременно открытых коннектов.
>
>Да, но есть переменная wait_timeout в Mysql, которую, если сделать поменьше и
>база сама будет уничножать коннекты.
А кокой тогда смысл использовать pconnect?
>А кокой тогда смысл использовать pconnect?Смысл есть: У меня есть несколько скриптов, в каждом происходит обращение к базе, параметры соединения одинаковые, то есть тот же юзер, тот же пароль к тому же хосту. mysql_pconnect как раз не создает нового соединения для того же самого юзера с тем же паролем.
Допустим я вызываю 5 скриптов последовательно (как это просисходит в реальной работе)
То есть при использовании pconnect будет создано одно соединение при запуске первого скрипта, а для остальных 4-ех скриптов будет использовано уже существующее.
А При использовании connect мы получим 5 соединений с базой.Вроде выйграть должны по скорости ? Или я что-то не понимаю ?
>И в каких случаях ? Я всегда использовал mysql_connect(), но тут наткнулся
>на mysql_pconnect() и понимая, что соединение с базой - это тяжелая
>по ресурсам операция, хочется узнать не лучше ли использовать mysql_pconnect() ?Новое соединение с MySQL не такая тяжелая операция, которой в большинстве ситуаций можно пренебречь, при сравнении с затратами MySQL на выполнение запросов.
В pconnect функциях на моей памяти, не раз возникали ошибки реализации, что выливалось в утечке в ввиде накопления незакрытых коннектов. К тому же, насколько я понимаю, каждый pconnect актуален только в рамках одного дочернего apache процесса, т.е. если следующий запрос будет обрабатывать другой child (а так и будет), открытый в другом процессе pconnect останется невостребованным.
> К тому же,
>насколько я понимаю, каждый pconnect актуален только в рамках одного >дочернего
>apache процесса, т.е. если следующий запрос будет обрабатывать другой child (а
>так и будет), открытый в другом процессе pconnect останется >невостребованным.Вот это уже важно - спасибо! Тогда действительно не стоит этим пользоваться.