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

start [/forum/topic.php?fid=23&gotonew=1&tid=1477149]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
9ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 435ms |

| 0 / 0 |
