我有一个每秒有很多请求的网络服务器。为了优化数据库的 I/O 性能,服务器目前仅通过 HTTP 查询执行 2 个 SQL 查询:
- 为了获取当前用户,有一个查询,
- 有一个查询可以读取或写入资源。
而且我目前想知道在会话变量中缓存当前用户的ID是否不明智。这样,服务器可以通过 HTTP 查询仅执行 1 个 SQL 查询。
为此,客户端必须在应用程序上进行身份验证。然后,在检查用户名+密码的 SQL 查询之后,服务器可以将他的 id 保存在会话变量中。在此之后,我们可以删除无用的 SQL 查询。
由于这看起来非常简单且有用,我想知道为什么流行的身份验证插件,例如 Devise gem(用于 Rails 或 Sinatra)似乎不能以这种方式工作。
他们是这样做的最佳方式吗?你有什么想法?
感谢您的任何想法。