ActiveRecord SessionStore的性能

时间:2011-03-14 19:12:42

标签: ruby-on-rails session activerecord session-cookies

从cookieStore到ActiveRecord SessionStore的性能损失有多大?

默认情况下,Ruby on Rails使用CookieStore。但它的缺点是客户端需要启用cookie。

切换到活动SessionStore似乎解决了这个问题。我正在考虑转换。

我读到使用ActiveRecord SessionStore表现更差。但更糟的是什么?用户会注意到这一点,还是几毫秒?有没有人看过比较2个选项的基准测试结果?

是否有其他原因(不是)切换到ActiveRecord SessionStore?

2 个答案:

答案 0 :(得分:4)

更糟糕的是,它需要查询数据库,然后需要计算答案,而不是直接转到客户端的cookie。

然而它真的那么糟糕吗?你是对的,因为在大多数情况下,性能差异非常小。

<强>优点:

亲和 如果您的Web应用程序扩展到多个服务器,则将会话移动到数据库可以让您在没有server affinity的情况下运行服务器。

安全 - 由于您只在客户端存储会话ID,这减少了用户通过客户端操作任何数据的机会。

<强>缺点

性能 - 您可以只从客户端读取会话/ cookie数据,而不是查询数据库。

答案 1 :(得分:4)

但AR会话商店也依赖于cookie - 它会在那里保存会话ID。

据我所知,没有办法让Rails会话在禁用cookie的情况下工作。