Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP & БД / 4 сообщений из 4, страница 1 из 1
04.12.2005, 12:10
    #33415768
skunk_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP & БД
Недавно начал изучение РНР, до этого имел дело лишь с JSP/Servlet, а посему озадачился таким аспектом работы с БД, как управление подключениями. В Java есть такая вещь, как Connection pool, позволяющая довольно эффективно обслуживать работу множества клиентов с БД. А в РНР что-то подобное есть?
Во всех примерах, что мне попадались, делалось так: в началае работы КАЖДОГО скрипта устанавливается новое соединение с БД, выполняются какие-то операции, после чего соединение закрывается. Есть еще какие-то persistent подключения, однако держать открытое соединение с БД на протяжении всего сеанса работы юзера еще менее эффективно, как мне кажется.
...
Рейтинг: 0 / 0
04.12.2005, 15:08
    #33415851
hell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP & БД
skunk_Недавно начал изучение РНР, до этого имел дело лишь с JSP/Servlet, а посему озадачился таким аспектом работы с БД, как управление подключениями. В Java есть такая вещь, как Connection pool, позволяющая довольно эффективно обслуживать работу множества клиентов с БД. А в РНР что-то подобное есть?
Во всех примерах, что мне попадались, делалось так: в началае работы КАЖДОГО скрипта устанавливается новое соединение с БД, выполняются какие-то операции, после чего соединение закрывается. Есть еще какие-то persistent подключения, однако держать открытое соединение с БД на протяжении всего сеанса работы юзера еще менее эффективно, как мне кажется.

persistent это и есть тот самый connection pool.

Всё зависит от СУБД.

Например для Oracle в режиме Shared Server выгодней всё время создавать коннекции, а в режиме Dedicated Server - использовать persistent.(в общем случае)
...
Рейтинг: 0 / 0
04.12.2005, 18:21
    #33415970
AlexKh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP & БД
skunk_Недавно начал изучение РНР, до этого имел дело лишь с JSP/Servlet, а посему озадачился таким аспектом работы с БД, как управление подключениями. В Java есть такая вещь, как Connection pool, позволяющая довольно эффективно обслуживать работу множества клиентов с БД. А в РНР что-то подобное есть?
Во всех примерах, что мне попадались, делалось так: в началае работы КАЖДОГО скрипта устанавливается новое соединение с БД, выполняются какие-то операции, после чего соединение закрывается. Есть еще какие-то persistent подключения, однако держать открытое соединение с БД на протяжении всего сеанса работы юзера еще менее эффективно, как мне кажется.

РНР создавался специально для WEB. А в этом вопросе - главное скорость. Посему, постоянные соединения всегда более предпочтительны (хотя и более опасны).
К примеру, соединение с локальным сервером MySQL на машине уровня P4 3000 выполняется около 7 микросекунд. За это время транслятор РНР5 может прочтать, на той же машине, порядка 1000-2000 строк грамотного кода, или открыть 8-12 файловых дискрипторов. А теперь представте, что сервер получает 100 запросов с секунду...

Решайте сами.
...
Рейтинг: 0 / 0
04.12.2005, 19:13
    #33416003
skunk_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP & БД
hell
persistent это и есть тот самый connection pool.

Да? Интересно, надо будет почитать поподробнее.
AlexKh
РНР создавался специально для WEB. А в этом вопросе - главное скорость. Посему, постоянные соединения всегда более предпочтительны (хотя и более опасны).
К примеру, соединение с локальным сервером MySQL на машине уровня P4 3000 выполняется около 7 микросекунд. За это время транслятор РНР5 может прочтать, на той же машине, порядка 1000-2000 строк грамотного кода, или открыть 8-12 файловых дискрипторов. А теперь представте, что сервер получает 100 запросов с секунду...

Вполне согласен, создавать подключение каждый раз - зло, потому и искал что-то вроде пула соединений, когда они уже лежат готовые и выдаются скриптам по мере необходимости. Сейчас поподробнее по persistent почитаю :)
Кстати, если я правильно понял, для MySQL 4.1 и выше (а интересует главным образом эта СУБД) следует использовать функции mysqli_* вместо mysql_*, так?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP & БД / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]