在会话中存储用户信息还是从mysql中提取?

时间:2014-07-31 19:56:50

标签: php performance session login

选项1: 登录后,使用基本用户信息(名称,用户ID,帐户权限等)填充SESSION

  • Pro:通常没有任何用户信息发生变化,因此不需要进行数据库调用。由于已经调用了SESSION,因此可以在那里存储信息。
  • Con:在数据库中更改用户信息时,必须进行会话更新

选项2: 仅存储uid,每次都提取信息

  • Pro:没有会话更新问题。信息始终是最新的。
  • Con:MySQL查询用户数据(用户基本信息,权限等)

我发现有些帖子声称会话方法也比MySQL快(尽管我怀疑它会产生任何真正的不同)。 问题:什么可能是最好的方式,为什么?我的直觉说#2 ......

2 个答案:

答案 0 :(得分:0)

将数据加载到会话中(对于主要是静态信息的数据库没有任何意义),如果有更新数据库,请同时更新会话。

答案 1 :(得分:0)

您可以使用两者的组合,在会话中加载只能由用户更改的数据(名称或任何个人信息),并获取其他用户(例如管理员)可以更改的数据(例如权限)数据库。