![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Black |
|
||||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: нет Всего: 45 |
Имеется чат работающий на PHP + MySQL
Если человек пишет определенную фразу в чат, то запускается в нульфрейме PHP-скрипт, который открывает соединение с базой данных MySQL и вставляет введенное пользователем сообщение в базу mySQL. Также каждые 5 секунд происходит при помощи SELECT запрос из базы данных для извлечения новых фраз из чата !!! Вообщем, база данных MySQL очень сильно используется. Так вот: слышал, что при таком частом обращении к базе необходимо использовать функцию
для установления устойчивого соединения с базой данных, короче чтобы каждые пять секунд заново не делать новое подключение к базе данных. Возник вопрос: действительно ли мне лучше использовать mysql_pconnect() вместо mysql_connect() и какой выигрышь это даст в быстродействии скрипта??? И еще: я не очень пойму как работает эта функция??? я так понял что от перехода от одного скрипта к другому скрипту, функция использует старый идентификатор уже открытого соединения с базой mySQL, так вот где она хранит этот идентификатор, я думаю что в кукисах, иначе вроде никак не получится. И еще цитирую (из документации):
ну и как закрыть это подключение если человек выйдет из чата, или оно как-то через опр. промежуток времени само отключается??? Спасибо за ответы. Это сообщение отредактировал(а) PHP-DIRECTOR - 7.1.2005, 21:48 -------------------- Могу все, но ничего не умею :-) |
||||
|
|||||
| rMaveric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 18.7.2003 Репутация: нет Всего: 6 |
Функция mysql_pconnect() открывает постоянное соединение. Оно закрывается через mysql_close() , НО не закрывается само по себе, при завершении работы сценария.
-------------------- |
|||
|
||||
| Black |
|
|||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: нет Всего: 45 |
т.е. если я не буду использовать в скриптах mysql_close(). тогда подключение закрыто не будет??? а если мне необходимо будет его закрыть, то мне надо использовать mysql_close()???
-------------------- Могу все, но ничего не умею :-) |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
rMaveric
для pconnect как раз не надо close(); PHP-DIRECTOR тебе надо использовать pconnect. Желательно еще олптимизировать сам кодж работы с юазой.. Ну и плюс, вроде ты создавал тему про оптимизацию - использовать моменты оттуда. |
|||
|
||||
| Black |
|
|||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: нет Всего: 45 |
Mal Hack так как закрывается соединение pconnect или его не надо закрывать???
-------------------- Могу все, но ничего не умею :-) |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 2 Всего: 55 |
PHP-DIRECTOR
делай минимум каждые 10 сек обновление. 5 сек это мало. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
А зачем? В этом-то и весь смысл... http://ru2.php.net/manual/ru/function.mysql-pconnect.php |
|||
|
||||
| Black |
|
|||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: нет Всего: 45 |
а где можно прочитать про настройку? и еще где выставить это максимальное число соединений? -------------------- Могу все, но ничего не умею :-) |
|||
|
||||
| Black |
|
|||
|
Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: нет Всего: 45 |
mysql.max_persistent
mysql.max_links директивы отвечающие за кол-во постоянных соединений на один процесс -------------------- Могу все, но ничего не умею :-) |
|||
|
||||
| rMaveric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 18.7.2003 Репутация: нет Всего: 6 |
2 Mal Hack && PHP-DIRECTOR
Прошу прощения mysql_close() вообще не закрывает постоянного соединения. Сонный был написал невесть что. -------------------- |
|||
|
||||
| Dr.Wisdom |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
А если я питнацать раз подряд напишу
или там
(ну вот дурак я например) То соединение будет одно? --------------------
VIVA LA RESISTANCE |
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Dr.Wisdom, а ты проверь, узнаешь.
|
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 2 Всего: 55 |
Black,
По своей идее - чат на ПХП + База - утопия... Но при малом кол-ве народа, жить можно. Как у тебя устроен процесс записи и чтения? возможно его можно оптимизировать. А по теме pconnect: http://www.mysqlperformanceblog.com/2006/1...nnections-evil/ |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
А как проверить? Если можно избежать использования mysql_pconnect стоит ли его избегать? Если избежать использования mysql_pconnect - значит написать класс который перегрузит код и вообще будет выглядеть нелепо, то стоит ли вообще избегать его использования? pconnect это вообще зло или не зло? --------------------
VIVA LA RESISTANCE |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Программным кодом. Взять, посмотреть, что в идентификаторах соединения, один и тот же или нет. Нет не зло, если работать правильно.
Я бы на твоем месте, сначала бы, понял разницу между постоянными и не постоянными соединениями. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |