Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MySQL persistant connections
 
 автор: Кореш   (15.01.2009 в 15:56)   письмо автору
 
 

Запросы (HTTP request-ы) следующие от одного и того же пользователя, в рамках одной сессии обслуживаются разными процессами (по крайней мере у Apache, MPM preforked это так). Это означает, что если в рамках одного запроса пользователь подключился к БД, то в следующем запросе созданное им подключение может оказаться совсем в другом процессе (я имею ввиду не CGI, а например, FastCGI, язык не важен). Раз так, то какой смысл в пуле подключений (connection pool) и как использовать подключение к БД (connection sharing) из нескольких процессов?

Понятно, что можно подключаться к БД от имени одного и того же "гостя", закрывать все курсоры, транзакции и не использовать права доступа к объектам, устанавливаемые самой БД, однако пожертвовать всем только из-за этого ограничения я не готов. Есть соображения?

  Ответить  
 
 автор: xx77   (15.01.2009 в 17:10)   письмо автору
 
   для: Кореш   (15.01.2009 в 15:56)
 

> оказаться совсем в другом процессе
Думаю в этом что-то не так, получается что не пользователь подключается , а интерпритатор , который получает дескриптор открытого соединения , и держится за него, пользователь так-же держится за один дескриптор , вернее является сам дескриптором для сервера , который обменивается с ним меняя наверное процессы.
Но возможно я неправильно понял.
в php <-> mysql есть возможность создавать постоянные соединения , которые будут подхватываться если не заняты
, но там есть минус , они часто создаются лишние , и наверное нужно как-то отслеживать чтобы не оказалось слишком много висящих без дела соединений с базой, хотя не пользовался постоянными соединениями , только разок попробовал и понял что если нет слишком частогых обращений с подключениями , особого смысла использовать это нет.
Если я понял о чём вопрос

  Ответить  
 
 автор: Кореш   (15.01.2009 в 20:36)   письмо автору
 
   для: xx77   (15.01.2009 в 17:10)
 

>Думаю в этом что-то не так, ...
Такое ощущение, что pid, ps, sockstat не запускал ни разу :-)

>в php <-> mysql есть возможность создавать постоянные соединения
Пожалуй стоит попробовать, что такое я тоже слышал

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования