производительность ActiveRecord SessionStore - PullRequest
5 голосов
/ 14 марта 2011

Насколько велика потеря производительности при переключении из cookieStore в ActiveRecord SessionStore?

По умолчанию Ruby on Rails использует CookieStore. Но у него есть недостаток, заключающийся в том, что клиент должен включить свои куки.

Переход к Active SessionStore, похоже, решает эту проблему. Я подумываю о переходе.

Я прочитал, что при использовании ActiveRecord SessionStore производительность хуже. Но что хуже? Заметит ли пользователь это или это вопрос миллисекунд? Кто-нибудь видел результаты тестов, сравнивающих 2 варианта?

Есть ли другие причины (не) переключиться на ActiveRecord SessionStore?

Ответы [ 2 ]

4 голосов
/ 21 августа 2011

Но хранилище сеансов AR также зависит от файлов cookie - оно сохраняет идентификатор сеанса там.

Насколько я знаю, невозможно заставить сеансы Rails работать с отключенными файлами cookie.

4 голосов
/ 14 марта 2011

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

Однако действительно ли это так плохо?Вы правы в том, что разница в производительности очень мала в большинстве случаев.

Плюсы:

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

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

Минусы

Производительность - Вместо того, чтобы запрашивать базу данных, вы можете просто прочитать данные сеанса / cookie со стороны клиента.

...