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