会话变量与数据库

时间:2010-11-18 16:55:00

标签: php database session

我正在为一个单一的网站工作,它必须允许不同用户登录访问。我的导师告诉我,我应该使用会话变量/数组来存储所有用户数据,如名字,地址等。

在我的设计中,我只有userID和Email地址(电子邮件用于登录),然后用于根据需要从数据库中获取数据。他说这会减慢网站的速度,因为我在与数据库建立了很多联系。

我应该将所有数据存储在会话变量中还是连接到数据库以访问此数据?

感谢您的任何建议:)。

2 个答案:

答案 0 :(得分:4)

您可以在首次登录时从数据库中获取信息,然后将其保留在会话变量中,直到他们注销或会话超时。如果有许多用户同时登录,那么在会话变量中保留大量用户数据可能会产生一些开销,但它与进行常量查询不同。

回答的最佳方式可能是询问用户存在多少其他数据,以及在“典型”会话中可能需要多少数据。大多数用户在会话期间的某个时刻需要加载的数据可以在登录时加载。大多数用户在典型会话期间不需要的数据可以按需加载。

答案 1 :(得分:1)

答案取决于您希望通过解决方案获得的“真实世界”。在一个真正的高流量站点,它将在多个服务器之间进行负载平衡,数据将存储在数据库中,然后在从数据库中获取时使用诸如memcache之类的东西进行缓存一段时间。如果你不需要把它带走,那么在会话中缓存是完全可以接受的。