Правильное подключение к БД

A
На сайте с 10.03.2008
Offline
40
1220

Нашел скрипт. Структура общая написания следующая

1. выполняется PHP условия, задачи с подключением к БД путем mysql_connect, после выполнения определенных условий (задач) происходит закрытие соединения путем mysql_close

2. после закрытия PHP выполняется некий HTML-код

3. после опять открывается PHP код, опять выполняются некие условия (задачи), опять идут подключения к БД путем mysql_connect, после выполнения определенных условий (задач) происходит закрытие соединения путем mysql_close

При том подключения и отключения могут выполнятся в куске PHP кода несколько раз. Скрипт имеет header-файл (выводится в шапке на каждой странице) и footer-файл (завершает все страницы).

ВОПРОС?

1. Для чего так делается? В чем фишка такого нерационального использования нагрузки на БД или наоборот это рациональнее? Для чего то ведь так делалось

2. Почему нельзя в header-файле установить соединение с БД через mysql_connect в во всех кодах он будет выполнять запросы к БД, а в файле footer-файл закроет соединение с БД через mysql_close

3. Что рациональнее перед каждым (ну или перед несколькими) выполнением запроса к БД подключаться и после выполнения отключатся от БД или один раз подключится, а потом выполнять запросы к БД в ходе работы скрипта? И почему?

Объясните мне.

Сервис активной рекламы (http://mailcasher.info/) Диски почтой (http://www.postcd.ru/)
skAmZ
На сайте с 04.09.2009
Offline
122
#1

1. Время подключения по сравнению со временем выполнения запросов мизерное.

2. Можно

3. Закрытие соединения имеет смысл, если после всех запросов к базе данных нужно выполнить еще какой-то ресурсоёмкий код, а так соединение закрывается после завершения скрипта само. И вообще есть лимит на одновременное количество установленных соединений к базе данных.

maxwell
На сайте с 29.04.2009
Offline
149
#2
andryus:

ВОПРОС?
1. Для чего так делается? В чем фишка такого нерационального использования нагрузки на БД или наоборот это рациональнее? Для чего то ведь так делалось
2. Почему нельзя в header-файле установить соединение с БД через mysql_connect в во всех кодах он будет выполнять запросы к БД, а в файле footer-файл закроет соединение с БД через mysql_close
3. Что рациональнее перед каждым (ну или перед несколькими) выполнением запроса к БД подключаться и после выполнения отключатся от БД или один раз подключится, а потом выполнять запросы к БД в ходе работы скрипта? И почему?

Объясните мне.

Наличие открытого соединения с мускулом никак не нагрузит Ваш сервер. Просто в памяти висит некий дескриптор соединения и все. Если хотите освободить используемые ресурсы (ну, там после селектов), используйте mysql_free_result() .

Ну а лепить кучу подключений/отключений весьма неразумно.

PS: возможно скрипт заточен под работу с 2 mysql-серверами? С одним - в начале, а со вторым - в конце?

A
На сайте с 10.03.2008
Offline
40
#3

skAmZ, Т.е. если я правильно понял, то лучше выполнять несколько соединений, и закрывать их после выполнения определенных запросов, чем один раз соединится и выполнять запросы в ходе подключения? Получается в данном случае нагрузка на БД создастся меньше?

andryus добавил 28.05.2010 в 19:55

maxwell, в том то весь и прикол что работа скрипта идет с одной БД

skAmZ
На сайте с 04.09.2009
Offline
122
#4

Самоу интересно стало)

При подключении оперативы используется на 1кб больше (запросы не посылались), на 50 подключений уходит в среднем 0.01 сек.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий