Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [mysql] использование постоянных соединений. 
:(
    Опции темы
Black
  Дата 7.1.2005, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Имеется чат работающий на PHP + MySQL

Если человек пишет определенную фразу в чат, то запускается в нульфрейме PHP-скрипт, который открывает соединение с базой данных MySQL и вставляет введенное пользователем сообщение в базу mySQL.
Также каждые 5 секунд происходит при помощи SELECT запрос из базы данных для извлечения новых фраз из чата !!!

Вообщем, база данных MySQL очень сильно используется. Так вот: слышал, что при таком частом обращении к базе необходимо использовать функцию

Цитата
mysql_pconnect()

для установления устойчивого соединения с базой данных, короче чтобы каждые пять секунд заново не делать новое подключение к базе данных.

Возник вопрос: действительно ли мне лучше использовать mysql_pconnect() вместо mysql_connect() и какой выигрышь это даст в быстродействии скрипта???
И еще: я не очень пойму как работает эта функция??? я так понял что от перехода от одного скрипта к другому скрипту, функция использует старый идентификатор уже открытого соединения с базой mySQL, так вот где она хранит этот идентификатор, я думаю что в кукисах, иначе вроде никак не получится.

И еще цитирую (из документации):

Цитата
При завершении сценария подключение не закрывается, а остается действующим для дальнейшего использования, т.е. функция mysql_close() не может закрыть подключения, созданное с помощью mysql_pconnect().


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

Это сообщение отредактировал(а) PHP-DIRECTOR - 7.1.2005, 21:48


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
rMaveric
Дата 7.1.2005, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: нет
Всего: 6



Функция mysql_pconnect() открывает постоянное соединение. Оно закрывается через mysql_close() , НО не закрывается само по себе, при завершении работы сценария.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
Black
Дата 7.1.2005, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



т.е. если я не буду использовать в скриптах mysql_close(). тогда подключение закрыто не будет??? а если мне необходимо будет его закрыть, то мне надо использовать mysql_close()???


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Mal Hack
Дата 7.1.2005, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



rMaveric
для pconnect как раз не надо close();

PHP-DIRECTOR
тебе надо использовать pconnect.
Желательно еще олптимизировать сам кодж работы с юазой..
Ну и плюс, вроде ты создавал тему про оптимизацию - использовать моменты оттуда.
PM ICQ   Вверх
Black
Дата 7.1.2005, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Mal Hack так как закрывается соединение pconnect или его не надо закрывать???


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Opik
Дата 7.1.2005, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 2
Всего: 55



PHP-DIRECTOR
делай минимум каждые 10 сек обновление. 5 сек это мало.
PM MAIL Skype   Вверх
Mal Hack
Дата 7.1.2005, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(PHP @ 7.1.2005, 22:27)
Mal Hack так как закрывается соединение pconnect или его не надо закрывать???

А зачем? В этом-то и весь смысл...
http://ru2.php.net/manual/ru/function.mysql-pconnect.php
PM ICQ   Вверх
Black
Дата 7.1.2005, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Цитата
Использование устойчивых соединений может потребовать некоторой настройки Apache и MySQL. Убедитесь, что вы не превысите максимальное число дозволенных соединений.


а где можно прочитать про настройку? и еще где выставить это максимальное число соединений?


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Black
Дата 7.1.2005, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



mysql.max_persistent
mysql.max_links

директивы отвечающие за кол-во постоянных соединений на один процесс


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
rMaveric
Дата 10.1.2005, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: нет
Всего: 6



2 Mal Hack && PHP-DIRECTOR
Прошу прощения mysql_close() вообще не закрывает постоянного соединения. Сонный был написал невесть что.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
Dr.Wisdom
Дата 10.2.2007, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 6.1.2005

Репутация: нет
Всего: 0



А если я питнацать раз подряд напишу 
Код

mysql_pconnect();
mysql_pconnect();
mysql_pconnect();

или там
Код

for($i = 0; $i < 100; $i ++)
{
mysql_pconnect();
}

(ну вот дурак я например)
То соединение будет одно?
--------------------
VIVA LA RESISTANCE
PM MAIL   Вверх
Mal Hack
Дата 10.2.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Dr.Wisdom, а ты проверь, узнаешь.
PM ICQ   Вверх
Opik
Дата 11.2.2007, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 2
Всего: 55



Black, 
По своей идее - чат на ПХП + База - утопия... smile
Но при малом кол-ве народа, жить можно.
Как у тебя устроен процесс записи и чтения? возможно его можно оптимизировать.

А по теме pconnect: http://www.mysqlperformanceblog.com/2006/1...nnections-evil/
PM MAIL Skype   Вверх
Dr.Wisdom
Дата 12.2.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 6.1.2005

Репутация: нет
Всего: 0



Цитата(Mal Hack @  10.2.2007,  23:38 Найти цитируемый пост)
Dr.Wisdom, а ты проверь, узнаешь. 

А как проверить? smile 

Если можно избежать использования mysql_pconnect стоит ли его избегать?

Если избежать использования mysql_pconnect - значит написать класс который перегрузит код и вообще будет выглядеть нелепо, то стоит ли вообще избегать его использования?

pconnect это вообще зло или не зло?
--------------------
VIVA LA RESISTANCE
PM MAIL   Вверх
Mal Hack
Дата 13.2.2007, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(Dr.Wisdom @  12.2.2007,  13:15 Найти цитируемый пост)
А как проверить? smile 

Программным кодом. Взять, посмотреть, что в идентификаторах соединения, один и тот же или нет.

Цитата(Dr.Wisdom @  12.2.2007,  13:15 Найти цитируемый пост)
pconnect это вообще зло или не зло? 

Нет не зло, если работать правильно.

Цитата(Dr.Wisdom @  12.2.2007,  13:15 Найти цитируемый пост)
Если можно избежать использования mysql_pconnect стоит ли его избегать?

Я бы на твоем месте, сначала бы, понял разницу между постоянными и не постоянными соединениями.
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.