как коректно подключиться / отключиться от базы?

dusya

Guest
как коректно подключиться / отключиться от базы?

1. в php есть 2 способа подключение к базе:
- mysql_connect()
- mysql_pconnect()

Какую функцию лучше использовать? В чем разница?
Я читал мануал, но к сожелению невловил однозначного ответа.

2. нужно ли закривать поключение к базе исполнением mysql_close()?

В мануале написано, что необезательно.
Насколько это верно, независают ли они?
 

neko

tеam neko
icechel
конечно могу
я надеюсь ты уже прочел руководство, а также попровал сам?
 

icechel

Новичок
Пробовать - пробовал и мануал читал. А вот разницы что-то не заметил.
Если не считать что для connect обязательным close должен быть.

Вот и обоснуй, если можешь.
 

dusya

Guest
мануал гласит:

Using mysql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.
но насколько это верно, независают ли коннекты на некоторое время?
 

neko

tеam neko
независают
вообще все внешние ресурсы освобождаются

а для постоянных соединений close не работает
и поэтому вообще придумать ситуацию когда он нужен достаточно трудно :)
 

Фанат

oncle terrible
Команда форума
icechel
Специфика работы такова, что постоянный коннект скорее мешает, чем помогает.
Неужели тебе незнакома проблема под кодовым названием "ту мэни коннекшенз"?
 

icechel

Новичок
Фанат
Есть такая проблема как "ту мэни коннекшенз", но тогда для чего сделали pconnect ? Для чего он вообще нужен ? Есть ли от него приемущетсва перед connect ?
 

Admiral

Guest
Есть, не тратится время на установление нового соединения, если уже одно открыто такое же.
 

icechel

Новичок
Что значит такое-же соединение ? То есть соединение от одного и того-же клиента ? Или соединение от одного и того-же скрипта ?
 

icechel

Новичок
По мануалу:

Учтите, что соединения такого типа (pconnect) работают только, если PHP установлен как модуль.

И как я понял. Проблема с "ту мэни коннекшенз" в таком случае отпадает ? Я правильно понял ?

Ладно. Пошел экспериментировать.

-~{}~ 10.12.04 14:34:

Ух блин. Процессы растут. Вывод такой. Никаких pconnect 'off
 

dusya

Guest
И как я понял. Проблема с "ту мэни коннекшенз" в таком случае отпадает ? Я правильно понял ?
незовсем, на VPS часто-густо стыкался с "too many connection" тоже при использовании mysql_connect()
 

Фанат

oncle terrible
Команда форума
Admiral
К тебе будет большая просьбюа не писать на тему, в которой ты не смыслишь ни бельмеса.

icechel
Как раз НАОБОРОТ
раз соединение НЕ закрывается, значит, оно висит ОТКРЫТОЕ. Значит, оно ЕСТЬ. Пользователя нет, а соединение - есть.
без персистента 10 хитов отработало - НОЛЬ открытых соединений.
с персистентом 10 хитов отработало, и, скажем, 5 открытых соединений ВИСИТ.
отсюда - тумээни коннекшенз набирается на раз.
 

icechel

Новичок
Фанат
Вот я так и понял, когда поэкспериментировал. Бяда прямо. А нафик тада этот пконнект вообще сделали ? Я этого не могу понять.
 

Фанат

oncle terrible
Команда форума
icechel
а хз.
не буду строить из себя идиота, пытаясь выдумать.
может, найдется кто покомпетентнее.
 

dusya

Guest
The answer here is extremely simple -- efficiency. Persistent connections are good if the overhead to create a link to your SQL server is high. Whether or not this overhead is really high depends on many factors. Like, what kind of database it is, whether or not it sits on the same computer on which your web server sits, how loaded the machine the SQL server sits on is and so forth. The bottom line is that if that connection overhead is high, persistent connections help you considerably. They cause the child process to simply connect only once for its entire lifespan, instead of every time it processes a page that requires connecting to the SQL server. This means that for every child that opened a persistent connection will have its own open persistent connection to the server. For example, if you had 20 different child processes that ran a script that made a persistent connection to your SQL server, you'd have 20 different connections to the SQL server, one from each child.
но что это значит и как измерять "overhead to create a link to your SQL server" ?

и как используються ресурсы?

верно ли, что при mysql_pconnect() на 1 сайт приходиться 1 коннект для всех посетителей?
 
Сверху