переменные сеанса против базы данных - PullRequest
0 голосов
/ 18 ноября 2010

Я работаю на веб-сайте для моей работы в универе, и он должен разрешить доступ для входа в систему для разных пользователей. Мой преподаватель сказал мне, что я должен использовать переменную / массив сеанса для хранения всех пользовательских данных, таких как имя, адрес и т. Д.

В моем проекте у меня просто есть идентификатор пользователя и адрес электронной почты (адрес электронной почты используется для входа в систему), а затем функции для получения данных из базы данных по мере необходимости. Он говорит, что это замедлит работу сайта, так как я делаю много подключений к базе данных.

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

Спасибо за любой совет:).

Ответы [ 2 ]

4 голосов
/ 18 ноября 2010

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

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

1 голос
/ 18 ноября 2010

Ответ зависит от того, насколько «реальный мир» вы хотите получить с помощью своего решения. На реальном сайте с высоким трафиком, который будет сбалансирован по нагрузке между несколькими серверами, данные будут храниться в базе данных и затем кэшироваться в течение некоторого времени, используя что-то вроде memcache при извлечении из базы данных. Если вам не нужно увлекаться этим, то кэширование в сеансе вполне приемлемо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...