如果我有一个登录系统或类似的东西,我会在会话中存储一个 session_id 和一个 user_id,但与某个用户有关的任何其他数据都存储在数据库中。我见过人们在会话中存储其他数据(用户名、电子邮件等)的其他脚本。
我只是想知道,哪个会“更好”?将数据保存在数据库中的会话中,还是减少会话并从数据库中获取数据?
谢谢!
答案是视情况而定,在你的情况下,它甚至可能无关紧要。
您可以将任何您喜欢的信息存储在$_SESSION
. 我相信它可以达到 128Mb -memory_limit
默认情况下限制是 128Mb。你可以改变这个。
但是,根据经验,我会存储比查询数据库更相关和/或更便宜的信息 - 换句话说,尽可能少。
毫无疑问,它会因用途而有很大差异,但通常,会话包含以下内容:
出于速度/规模的原因,不建议存储大块数据/信息。
如果您的站点/平台需要在以后扩展,在正确的时间点,您最好查看直写缓存或类似的常用/必需数据(例如Memcached)并将绝大多数数据存储在你的数据库 - 应该在哪里。
希望这可以帮助。
实践表明,最好将数据保存在数据库中(对于 >= 中型项目(服务器场/会话中的真正大量数据)或增强任何类型项目的安全性(例如共享主机))。甚至用户 id 也不应该保存在$_SESSION
. 散列、闪存消息、快速设置 - 这就是$_SESSION
.
但是如果你仍然有一个问题“我需要在数据库中保存会话”那么你很可能不应该将它保存在数据库中。