Тема: Поможите!
Показать сообщение отдельно
Старый 31.07.2004, 03:45     # 16
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
я уже писал про это. попробуй написать функцию, где каждый раз делается одно и тоже:

открывается соединение(но connection string не меняется),
делается запрос,
идет обработка результата(скажем в ассоциативный массив).

а теперь запихни эту функцию в цикл(скажем 100.000 итераций) и смотри что будет с конекшинами(любым монитором для mysql).

в моих "опытах", mysql не открывал каждый раз новый connection.

http://imho.ws/showthread.php?t=64225 - вот тут я писал об этом.

я имею ввиду следущую вещь:

можно коннектиться сколько угодно много раз к базе, это не скажеться на производительности, если соединение не закрыто, и connection string не меняется. мое имхо, там присутсвует внутренний connection pool, который как раз и занимается непосредственно реальными коннектами к базе, а mysql_connect - это всего лишь обращение к pool.

я когда проектирую функции бизнес-логики, то делаю примерно так:

Код:
function GetItenById($itemId)
{
   $db = new myDbClass();  // это мой класс работы с mysql(там ничего особенного нету)
   $db->Connect();
   
   $db->Select("query");

   //тут обработка и сохранение данных(в полях класса например)
   .... 
   //в конце не закрываю connection
}
далее использую скажем вот так:

Код:
for($i=0;$i<1000;$i++)
{
   GetItenById($i);
}
и никаких напрягов вобщем-то нету. и даже не нужно юзать этот пресловутый pconnect.

может, я конечно не прав.
__________________
убрано по просьбе администратора
Sheryld вне форума