没有SQL查询的Web应用程序用于当前用户身份验

我有一个每秒钟有很多请求的Web服务器。 为了优化数据库的I / O性能,服务器当前只通过HTTP查询执行2个SQL查询:

  • 有一个查询以获取当前用户,
  • 有一个查询来读取或写入资源。

我现在想知道在会话变量中缓存当前用户的id是否也不聪明。 这样,服务器只能通过HTTP查询执行1个SQL查询。

为此,客户端必须在应用程序上进行身份validation。 然后,在检查用户名+密码的SQL查询之后,服务器可以将其id保存在会话变量中。 在此之后,我们可以删除无用的SQL查询。

因为这看起来非常简单,有用,我想知道为什么流行的身份validation插件,如Devise gem(对于Rails或Sinatra)似乎不会这样工作。

他们是最好的方式吗? 你有什么想法?

谢谢你的任何想法。

就是 Devise和大多数身份validation框架的function。 在会话中保存ID的目的是允许您快速轻松地从数据库中检索用户:可能是因为某个原因(例如在页面上显示他们的名字,检查身份validation,模型分配)而提取用户,只是从会话中获取他们的ID不会告诉你任何这些信息。 所以你仍然必须从数据库中获取用户。