PHP « Зачем хранить сессии в базе?

В продолжение вопроса PHP → Принцип работы сессии
хочу поинтересоваться зачем хранить сессии в базе? какие проблемы это решает?

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

1 ответов


Если стоит такой вопрос. То однозначно не нужно.
Все новички( да и не только новички) как правило кидаются в разработку собственного механизма хранения сессий, мотивируя это разными причинами. Начиная от решения мифических "проблем и ошибок" с сессиями, заканчивая собственным самоутверждением.
Механизм сессий, реализованный в PHP быстр, надежен, удобен и подходит для 99.9% приложений, написаных на PHP. Если вам встретился в проекте кем-то переписанный механизм сессий, но вы не видите очевидной причины, зачем это было сделано, то причиной было лишь желание автора самоутвердиться. Ничего , кроме геморроя при поддержке проекта такие самописки не приносят.


сессия в бд полезна, например, если у тебя "ферма" - все серверы фермы имеет одну и ту же сессию


Мне кажется, будет проще работать с сессией в бд чем с файлами, например, если нужно посмотреть кто сейчас в онлайне, то легко можно определить userId у кого есть сессия 1 запросом, а не перебором файлов
P.S. вообще с сессией познакомился и начал использовать с изучением Zend Framework и тут же начал сохранять их в бд


Да в принципе незачем.
Достаточно эффективно сессии хранить в кэше, например memcached.
И в принципе как показывает практика именно кэш лучший вариант по быстродействию.


Хранить сессии в БД - это первый вариант который приходит в голову при масштабировании приложения. Но как показывает практика лучше всего хранить в кеше.