我最近构建了一个控制用户可以查看和访问的页面的安全系统,我构建它以便系统中每个页面的所有值都在登录时存储在会话变量中,以避免每次加载页面时都必须访问数据库相同的信息。
在这种情况下,我认为使用会话变量是正确的。但如果它只是在一个页面上使用的值,我会从数据库中访问。
在这两个极端之间,在一个会话变量中放置一个值是正确的吗?或者这些更多是基于您存储的内容,例如用户名,而不是您使用多少?
答案 0 :(得分:0)
会话变量存储在您的服务器上,就像数据库值存储在您的服务器上一样。
不同之处在于,您不是像使用数据库一样查询各条信息,而是一次加载整个“行”(即会话)。
通过简单地将所有值存储在数据库的单个行中并查询它,您没有理由无法获得相同的性能结果。 (注意:使用会话变量或数据库字段执行此操作是个坏主意)最终,两个数据源都来自服务器的存储。
有人说......
会话变量传统上存储与客户端状态相关的临时值,例如,客户端是否完全登录,上次登录时间是否等等。
数据库变量应存储您希望在特定客户端会话之外保留的内容。