
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
04.12.2005, 12:10
|
|||
|---|---|---|---|
|
|||
PHP & БД |
|||
|
#18+
Недавно начал изучение РНР, до этого имел дело лишь с JSP/Servlet, а посему озадачился таким аспектом работы с БД, как управление подключениями. В Java есть такая вещь, как Connection pool, позволяющая довольно эффективно обслуживать работу множества клиентов с БД. А в РНР что-то подобное есть? Во всех примерах, что мне попадались, делалось так: в началае работы КАЖДОГО скрипта устанавливается новое соединение с БД, выполняются какие-то операции, после чего соединение закрывается. Есть еще какие-то persistent подключения, однако держать открытое соединение с БД на протяжении всего сеанса работы юзера еще менее эффективно, как мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.12.2005, 15:08
|
|||
|---|---|---|---|
PHP & БД |
|||
|
#18+
skunk_Недавно начал изучение РНР, до этого имел дело лишь с JSP/Servlet, а посему озадачился таким аспектом работы с БД, как управление подключениями. В Java есть такая вещь, как Connection pool, позволяющая довольно эффективно обслуживать работу множества клиентов с БД. А в РНР что-то подобное есть? Во всех примерах, что мне попадались, делалось так: в началае работы КАЖДОГО скрипта устанавливается новое соединение с БД, выполняются какие-то операции, после чего соединение закрывается. Есть еще какие-то persistent подключения, однако держать открытое соединение с БД на протяжении всего сеанса работы юзера еще менее эффективно, как мне кажется. persistent это и есть тот самый connection pool. Всё зависит от СУБД. Например для Oracle в режиме Shared Server выгодней всё время создавать коннекции, а в режиме Dedicated Server - использовать persistent.(в общем случае) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.12.2005, 18:21
|
|||
|---|---|---|---|
|
|||
PHP & БД |
|||
|
#18+
skunk_Недавно начал изучение РНР, до этого имел дело лишь с JSP/Servlet, а посему озадачился таким аспектом работы с БД, как управление подключениями. В Java есть такая вещь, как Connection pool, позволяющая довольно эффективно обслуживать работу множества клиентов с БД. А в РНР что-то подобное есть? Во всех примерах, что мне попадались, делалось так: в началае работы КАЖДОГО скрипта устанавливается новое соединение с БД, выполняются какие-то операции, после чего соединение закрывается. Есть еще какие-то persistent подключения, однако держать открытое соединение с БД на протяжении всего сеанса работы юзера еще менее эффективно, как мне кажется. РНР создавался специально для WEB. А в этом вопросе - главное скорость. Посему, постоянные соединения всегда более предпочтительны (хотя и более опасны). К примеру, соединение с локальным сервером MySQL на машине уровня P4 3000 выполняется около 7 микросекунд. За это время транслятор РНР5 может прочтать, на той же машине, порядка 1000-2000 строк грамотного кода, или открыть 8-12 файловых дискрипторов. А теперь представте, что сервер получает 100 запросов с секунду... Решайте сами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.12.2005, 19:13
|
|||
|---|---|---|---|
|
|||
PHP & БД |
|||
|
#18+
hell persistent это и есть тот самый connection pool. Да? Интересно, надо будет почитать поподробнее. AlexKh РНР создавался специально для WEB. А в этом вопросе - главное скорость. Посему, постоянные соединения всегда более предпочтительны (хотя и более опасны). К примеру, соединение с локальным сервером MySQL на машине уровня P4 3000 выполняется около 7 микросекунд. За это время транслятор РНР5 может прочтать, на той же машине, порядка 1000-2000 строк грамотного кода, или открыть 8-12 файловых дискрипторов. А теперь представте, что сервер получает 100 запросов с секунду... Вполне согласен, создавать подключение каждый раз - зло, потому и искал что-то вроде пула соединений, когда они уже лежат готовые и выдаются скриптам по мере необходимости. Сейчас поподробнее по persistent почитаю :) Кстати, если я правильно понял, для MySQL 4.1 и выше (а интересует главным образом эта СУБД) следует использовать функции mysqli_* вместо mysql_*, так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=23&mobile=1&tid=1477149]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 483ms |

| 0 / 0 |
