Модераторы: 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   Вверх
Всемогущий
Дата 14.2.2007, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Mal Hack @  14.2.2007,  00:43 Найти цитируемый пост)
Нет не зло, если работать правильно.

так как правильно?



--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
Dr.Wisdom
Дата 14.2.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Mal Hack @  13.2.2007,  22:43 Найти цитируемый пост)
Я бы на твоем месте, сначала бы, понял разницу между постоянными и не постоянными соединениями. 


Давайте взвешитвать все на безмене:
Насколько я понимаю разницу (поправьте меня если я ошибаюсь):

pconnect держиться строго некоторое время и доступен только для одной сессии (или как это назвать? один пользователь + один броузер + один запуск). 

Если скрипт сильно использует БД то это хорошо. Если нет - плохо, потому что на каждого пользователя открваеться по соединению и держиться.....держиться..... до потери пульса вобщем.

С другой стороны если скрипт гденить гонит и не закрывает соединение то это приводит к нехорошим последствиям. С pconnect такого не бывает. Что являеться плюсом в его огород.

С тертьей стороны ходят слухи что не везде pconnect открыт. Что являеться большим минусом в его огород.

И еще pconnect старательно ругают и защищают везде где только можно, что наводит на подозрения.
--------------------
VIVA LA RESISTANCE
PM MAIL   Вверх
Mal Hack
Дата 14.2.2007, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Dr.Wisdom, вы не правильно понимаете. Читайте поиск форума. Уже было уйму раз.

Цитата(Всемогущий @  14.2.2007,  10:42 Найти цитируемый пост)
так как правильно?

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


 




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


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

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