Сохранение соеднинения с базой

Paxan

Новичёк
Сохранение соеднинения с базой

Как можно сохранить соединение с базой(mysql) между скриптами?
memcached, SRM и прочие демоноподобные не катят, ввиду того, что на хостере их не установить =(

mysql_pconnect? Но вроде как с ним потом проблемы с кучей не прибитых соединений?

ps: mysql 3.23, php 4.3.9
 

_RVK_

Новичок
Paxan
Что значит сохранить? Скрипт завершил работу, соединения больше нет. Все, демон сдох. Нужно открывать повторно. Это если с mysql_connect. Про *_pconnect ты вижу знаешь.
 

Paxan

Новичёк
Originally posted by _RVK_
Paxan
Что значит сохранить? Скрипт завершил работу, соединение нет. Все, демон сдох. Нужно открывать повторно. Это если с mysql_connect.
Это значит, чтобы после выполнения скрипта соединение не закрылось и опять при выполнении этого же скрипта использовалось уже открытое соединение.
 

ys

отодвинутый новичок
[off]
Странно, что на танк еще никто не послал...
[/off]
 

Paxan

Новичёк
И заодно: почему так криво работает mysql_pconnect? Ведь по сути то, что надо.
 

Фанат

oncle terrible
Команда форума
Сначала интересно спросить - а почему такая нужда вдруг возникла.
Самое узкое место в скриптах - коннект к базе? Без постоянного сайт падает?
 

_RVK_

Новичок
Paxan
Он не криво работает. Он работает так как и должен. Почему? Потому что есть лимит на количество открытых соединений одновременно. Если ты используешь обычное соединение с БД то оно закрывается при завершении работы скрипта. Но если постоянные то соединение остается аисеть. Соответственно скорость увеличивается, но шансов на то что количество открытых соединений достигнет лимита выше.
 

Paxan

Новичёк
Originally posted by Фанат
Сначала интересно спросить - а почему такая нужда вдруг возникла.
Самое узкое место в скриптах - коннект к базе? Без постоянного сайт падает?
Первоисточник проблемы? =) Написал небольшой чат, при клиентах больше 30-40 начинается 'too many connections'. Чат на js, мессаги со скрытого фрейма. Повесить "правильный чат" повесить немогу, ввиду того, что хостер запрещает вешать демонов.
 

_RVK_

Новичок
Paxan
И что. Если использовать mysql_connect чат начинает жутко тормозить и падает? В чем проблемма?

РS. Надеюсь я понятно объяснил почему твоя мечта неосуществима?
 

Фанат

oncle terrible
Команда форума
Paxan
значит оптимизируй скрипты, чтобы они не секунду выполнялись, а нормально - одну сотую-одну десятую.
 

_RVK_

Новичок
Paxan
Стоит или не стоит, но попробуй в конце скрипта [m]mysql_close[/m]
 

Фанат

oncle terrible
Команда форума
пахан, вообще ты сам-то понял, чего ты хочешь?
у тебя сейчас лимит, допустим, ПЯТЬ одновременных соединений. и при этом висит 30 человек.
сделав же постоянное соединение ты ограничишь количество присутствующих ПЯТЬЮ.
тебе точно именно это надо?

-~{}~ 17.01.05 13:46:

_RVK_
при чем здесь это?
 

Paxan

Новичёк
Фанат
(пошёл замерять скорости выполнения)

_RVK_
попробую

-~{}~ 17.01.05 10:49:

Originally posted by Фанат
пахан, вообще ты сам-то понял, чего ты хочешь?
у тебя сейчас лимит, допустим, ПЯТЬ одновременных соединений. и при этом висит 30 человек.
сделав же постоянное соединение ты ограничишь количество присутствующих ПЯТЬЮ.
тебе точно именно это надо?

Хмм, я себе это представлял немного по другому. Т.е. одновременно два скрипта одно соединение юзать не могут?
 

_RVK_

Новичок
при чем здесь это
Извиняюсь не знал что "Замечание: mysql_close() не может закрывать постоянные соединения, открытые функцией mysql_pconnect()." (с) manual

А вообще сиё предложение было направленно только на проверку утверждения автора что у него там mysq_connect.
 

Paxan

Новичёк
Originally posted by Фанат
не могут
Прекрасно :D Я прозрел теперь. Спасибо.

Теперь едем дальше. Где можно держать мессаги от чата? Было б очень хорошо всё это дело держать в памяти, доступной между скриптами, но это как я понимаю только используя srm, memcached?
 

Фанат

oncle terrible
Команда форума
господи, да держи в базе.
сделай частоту обновления поменьше - и все ту мэни коннекшенс у тебя пропадут.

какая у тебя частота?
какое ограничение на количество одновременных соединений?
 
Сверху