Показать полную графическую версию : PHP+MYSQL
Скажите, надо ли закрывать соединение после каждой страницы? Поясняю: Допустим есть страница, которая отображает че-то из БД, на ней кнопочки всякие, по которым функции работы с БД вызываются. Вопрос, надо ли закрывать соединение в конце работы скрипта, если потом скорее всего (но не 100%) последует вызов другой страницы, которая тоже работает с той же БД.
если потом скорее всего (но не 100%) последует вызов другой страницы, которая тоже работает с той же БД.
Про HTTP-протокол помним? каждый вызов (даже той же самой страницы) с точки зрения сервера - это новый вызов. Иными словами - сервер отдал страницу и забыл о ней и о пользователе навсегда.
А вот незакрытое соединение с базой данных скорее всего закроется серверами, но я бы эксперементировать не стала, поскольку холостые висящие коннекты ни к чему хорошему не приведут, а к замедлению работы - точно.
vadimiron
08-07-2004, 13:22
Для постоянного конекта к базе данных можно использовать данную функцию-mysql_pconnect, то есть с этой функцией не надо вызывать на каждой странице соединение заново (так как, как уже сказала mar, скорей всего соединение закроется при полной загрузки страницы-хотя с другой стороны чего только не бывает :))
Я к тому веду, что надо самому полностью управлять этими соединениями, не надо полагатся на сервер, если нужно постоянное соединение, то используется функция, которую я дал, а лучше всё таки каждому скрипту делеть свой mysql_connect и mysql_close, писать не много, но зато всё будет под моим управлением, а к чему могут привести висящие коннекты один умный человек до меня уже сказал
Vlad Drakula
08-07-2004, 18:21
в документации к Апачь сказано что сервер может и не закрыть соединение и вызывать функцию закрытия соединения не обязательно!
vadimiron
08-07-2004, 23:15
Vlad Drakula
Не понял
в документации к Апачь сказано что сервер может и не закрыть соединение
Так в этом случае надо закрывать самому соединение, чтобы не было "висяков" :)
а ты пишешь
вызывать функцию закрытия соединения не обязательно!
Vlad Drakula
08-07-2004, 23:55
vadimiron
если сайт постоянно устнавливает одни и теже соединения то апачь может из не закрывать и оставлять после окончания скрипта, это позволяет ускорить работу т.к. не нужно постоянно открывать соединение!
vadimiron
09-07-2004, 22:46
так mar говорила же, что висящие соединения не есть хорошо
Я считаю, что надо полностью самому управлять данным процессом, и не доверять в этом плане апачу, тем более новый вызов mysql_connect не занимает много времени, если вызов производится с теми же параметрами, что и уже висящий коннект, то запрос не обрабатывается и возвращается идентификатор раннее открытого коннекта, то есть заново не будет производится соединение, поэтому и времени будет не много тратися, а полагаться только на апач, что он там решил не закрывать коннект, так как он часто вызывается, я бы не советовал
В мануале ПХП чётко стоит
Ссылка на сервер будет закрыта сразу по окончании работы скрипта, если не будет закрыта до этого явным вызовом mysql_close().
Так что я исхожу из этого
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.