Как заставить посетителей обновить свои сессии?

shornikov

Новичок
Как заставить посетителей обновить свои сессии?

Добрый день.
Есть база. Из нее в сессию кладываются некоторые значения, уникальные для пользователя, и далее пользователь использует значения сессии, а не базы. Это сделано, чтобы базу лишний раз не дергать...

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

Как заставить обновиться значения сессии?
Стирать файлы сессий нельзя, там информация о авторизации. можно конечно модифицировать их значения, но это как-то дико...

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

Какие-то другие варианты возможны?
 

x-yuri

Новичок
дергать бд лишний раз. А насколько повысилась производительность за счет того, что все в сессию перенесли или хотя бы разница заметна?
 

shornikov

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

почитал предложенную triumvirat ссылку. практически тотже вопрос, только сбоку...

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

x-yuri

Новичок
ты можешь создать для каждого пользователя поле и проверять его, если изменилось, то обновлять сессию

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

но почитай http://ru.wikipedia.org/wiki/Философия_Unix#.D0.9F.D0.B0.D0.B9.D0.BA:_.D0.A1.D1.82.D0.B8.D0.BB.D1.8C_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.BD.D0.B0_C
 

Духовность™

Продвинутый новичок
shornikov
сколько запросов и насколько они тяжелые?

лично я отказался от того, что реализовывал в алгоритме в вышеуказанной ссылке. да и ты подумай, может оптимизация спасет ситуацию?

-~{}~ 25.12.08 15:02:

ты можешь создать для каждого пользователя поле и проверять его, если изменилось, то обновлять сессию
это профанация идеи "не трогать базу, мы всё кладем в сессию"

вместо поля можешь использовать файлы
хорошая шутка.
 

Фанат

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

Gas

может по одной?
это профанация идеи "не трогать базу, мы всё кладем в сессию"
нет, то-ли делать "много" разных и возможно "тяжёлых" запросов для получения данных, то-ли сделать 1 запрос по primary key, которые база может лопатить ну очень большое количество и глазом не моргнёт.
Тут вопрос стоит, велика ли разница между хранением данных в сессии и получением их каждый раз из базы. Но это только ТС знает.
 
Сверху