对于我的登录系统,我需要检索一些用户数据,范围从用户名到 session 以及检查用户是否被暂停的“禁止状态”。
我见过一些系统在每次加载时从 users
检索这些数据。我的问题是:这算作对我的服务器造成不必要的压力吗?
或者我应该只将这些数据存储在我的 $_SESSION 中吗?但是它不会更新,我不知道如何检查禁令状态。
谢谢!
最佳答案
检索每个请求的用户信息的单个数据库查询应该没问题 - 它非常快,而且对服务器的影响不大。您总是可以稍后添加缓存(例如 APC 或 memcached),为此您可以告诉缓存每 10 分钟过期一次,或者您需要经常检查用户是否被禁止。但除非您的网站获得大量流量并且您确实注意到性能问题(换句话说,避免使用 premature optimization ),否则我不会为此烦恼。
编辑: 如果用户被禁止状态的更改总是通过您的应用程序发生,而不是直接在数据库中发生,那么您可以设置一些代码以在用户被禁止以清除缓存时运行。这样在禁令生效之前就不会有 10 分钟的延迟(或任何缓存过期时间)。但正如我上面所说,您可能一开始就不需要为缓存而烦恼。
关于PHP 登录 - 从数据库获取用户数据或存储在 session 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26091794/