Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   PHP+MYSQL (http://forum.oszone.net/showthread.php?t=31088)

pauluss 08-07-2004 09:39 213178

Скажите, надо ли закрывать соединение после каждой страницы? Поясняю: Допустим есть страница, которая отображает че-то из БД, на ней кнопочки всякие, по которым функции работы с БД вызываются. Вопрос, надо ли закрывать соединение в конце работы скрипта, если потом скорее всего (но не 100%) последует вызов другой страницы, которая тоже работает с той же БД.

mar 08-07-2004 10:00 213179

Цитата:

если потом скорее всего (но не 100%) последует вызов другой страницы, которая тоже работает с той же БД.
Про HTTP-протокол помним? каждый вызов (даже той же самой страницы) с точки зрения сервера - это новый вызов. Иными словами - сервер отдал страницу и забыл о ней и о пользователе навсегда.
А вот незакрытое соединение с базой данных скорее всего закроется серверами, но я бы эксперементировать не стала, поскольку холостые висящие коннекты ни к чему хорошему не приведут, а к замедлению работы - точно.  

vadimiron 08-07-2004 13:22 213180

Для постоянного конекта к базе данных можно использовать данную функцию-mysql_pconnect, то есть с этой функцией не надо вызывать на каждой странице соединение заново (так как, как уже сказала mar, скорей всего соединение закроется при полной загрузки страницы-хотя с другой стороны   чего только не бывает :))
Я к тому веду, что надо самому полностью управлять этими соединениями, не надо полагатся на сервер, если нужно постоянное соединение, то используется функция, которую я дал, а лучше всё таки каждому скрипту делеть свой mysql_connect и mysql_close, писать не много, но зато всё будет под моим управлением, а к чему могут привести висящие коннекты один умный человек до меня уже сказал

Vlad Drakula 08-07-2004 18:21 213181

в документации к Апачь сказано что сервер может и не закрыть соединение и вызывать функцию закрытия соединения не обязательно!

vadimiron 08-07-2004 23:15 213182

Vlad Drakula
Не понял
Цитата:

в документации к Апачь сказано что сервер может и не закрыть соединение
Так в этом случае надо закрывать самому соединение, чтобы не было "висяков" :)
а ты пишешь
Цитата:

вызывать функцию закрытия соединения не обязательно!

Vlad Drakula 08-07-2004 23:55 213183

vadimiron
если сайт постоянно устнавливает одни и теже соединения то апачь может из не закрывать и оставлять после окончания скрипта, это позволяет ускорить работу т.к. не нужно постоянно открывать соединение!

vadimiron 09-07-2004 22:46 213184

так mar говорила же, что висящие соединения не есть хорошо

Я считаю, что надо полностью самому управлять данным процессом, и не доверять в этом плане апачу, тем более новый вызов mysql_connect не занимает много времени, если вызов производится с теми же параметрами, что и уже висящий коннект, то запрос не обрабатывается и возвращается идентификатор раннее открытого коннекта, то есть заново не будет производится соединение, поэтому и времени будет не много тратися, а полагаться только на апач, что он там решил не закрывать коннект, так как он часто вызывается, я бы не советовал
В мануале ПХП чётко стоит
Цитата:

Ссылка на сервер будет закрыта сразу по окончании работы скрипта, если не будет закрыта до этого явным вызовом mysql_close().
Так что я исхожу из этого


Время: 07:30.

Время: 07:30.
© OSzone.net 2001-