在会话中存储更多变量的后果是什么?

时间:2009-11-22 01:41:47

标签: php session session-variables

当我们在会话中存储2-3个额外变量时,性能问题是什么? 为:

  1. 保存1-2个查询(每页加载)?

  2. 使代码更简单?

  3. 网站的命中率是正常的..

    编辑 @all我在谈论两个三个会话变量......简单的值,如数字,ids等

3 个答案:

答案 0 :(得分:0)

不存在性能问题。您可以在会话中存储对象和变量,并且它不会降低性能。

答案 1 :(得分:0)

每次访问使用会话的PHP脚本/页面时,都必须读取会话数据。 默认情况下,该数据作为文件存储在磁盘上(例如,您可以覆盖它并使用数据库)

因此,基本上,对于每个页面加载,必须通过PHP读取(并且很可能是写入)一些会话数据。会话中存储的数据越多,会话文件就越大。

如果只存储一些变量,则没有问题。但是如果你开始存储大型阵列之类的东西,如果你的命中率增加,你就会遇到问题。

-

如果您希望通过在会话中存储尽可能多的数据来“保持代码更简单”,则可能会产生更多问题。例如 - 如果您希望将来启用API访问,您可能必须删除大量会话数据存储/检索代码并将其替换为其他方法。

-

可能与您的问题无关:

如果要在会话中存储某种全局应用程序状态,以便不必重新计算它,则应使用其他一些缓存方法而不是会话。

答案 2 :(得分:0)

实际上,听起来你最终会挽救自己一点,性能明智。如果这些值是简单的字符串或数字,甚至是小数组或对象,这将是您更好的选择。如果要保存一个包含数千个key =>的数组。但是,值对,那么重新运行查询可能会更好,这取决于您是否在特定情况下需要它。

请记住,每次刷新时,您将触发存储在会话变量中的每个对象的构造函数。大对象=重载荷。