|
|
|
| Запросы (HTTP request-ы) следующие от одного и того же пользователя, в рамках одной сессии обслуживаются разными процессами (по крайней мере у Apache, MPM preforked это так). Это означает, что если в рамках одного запроса пользователь подключился к БД, то в следующем запросе созданное им подключение может оказаться совсем в другом процессе (я имею ввиду не CGI, а например, FastCGI, язык не важен). Раз так, то какой смысл в пуле подключений (connection pool) и как использовать подключение к БД (connection sharing) из нескольких процессов?
Понятно, что можно подключаться к БД от имени одного и того же "гостя", закрывать все курсоры, транзакции и не использовать права доступа к объектам, устанавливаемые самой БД, однако пожертвовать всем только из-за этого ограничения я не готов. Есть соображения? | |
|
|
|
|
|
|
|
для: Кореш
(15.01.2009 в 15:56)
| | > оказаться совсем в другом процессе
Думаю в этом что-то не так, получается что не пользователь подключается , а интерпритатор , который получает дескриптор открытого соединения , и держится за него, пользователь так-же держится за один дескриптор , вернее является сам дескриптором для сервера , который обменивается с ним меняя наверное процессы.
Но возможно я неправильно понял.
в php <-> mysql есть возможность создавать постоянные соединения , которые будут подхватываться если не заняты
, но там есть минус , они часто создаются лишние , и наверное нужно как-то отслеживать чтобы не оказалось слишком много висящих без дела соединений с базой, хотя не пользовался постоянными соединениями , только разок попробовал и понял что если нет слишком частогых обращений с подключениями , особого смысла использовать это нет.
Если я понял о чём вопрос | |
|
|
|
|
|
|
|
для: xx77
(15.01.2009 в 17:10)
| | >Думаю в этом что-то не так, ...
Такое ощущение, что pid, ps, sockstat не запускал ни разу :-)
>в php <-> mysql есть возможность создавать постоянные соединения
Пожалуй стоит попробовать, что такое я тоже слышал | |
|
|
|