在会话中存储用户数据-从数据库

Pra*_*ash 5 php mysql database session

如果我具有登录系统或类似的系统,则我在会话中存储session_id和user_id,但是与某个用户有关的任何其他数据都存储在数据库中。我看过其他脚本,人们可以在会话中存储其他数据(用户名,电子邮件等)。

我只是在想,哪一个“更好”?将数据保存在数据库中的会话中,还是将会话减少并从数据库中获取数据?

谢谢!

nic*_*har 3

您可以在 中存储您喜欢的任何信息$_SESSION。我相信它可以高达 128Mb - 限制由memory_limit默认情况下 128Mb 控制。你可以改变这一点。

然而,根据经验,我会存储相关的信息和/或比查询数据库更便宜的信息 - Put another way as less possible。

毫无疑问,它会因用途而有很大差异,但会话通常包含以下内容:

  • 用户名
  • 完整显示名称
  • 电子邮件地址
  • ID(用户或其他)
  • 权限
  • 用户组
  • 哈希值
  • 表单输入错误(暂时突出显示表单错误)

但出于速度/规模的原因,不建议存储大块数据/信息。

如果您的网站/平台需要在以后的适当时间进行扩展,您最好考虑使用直写式缓存或类似的方式来获取经常使用/需要的数据(例如Memcached),并将绝大多数数据存储在你的数据库 - 应该在哪里。

希望这可以帮助。