将mysql结果存储到$ _SESSION []变量中

时间:2014-02-08 09:37:49

标签: php mysql session resultset

您好我现在想了解您对此策略的看法。

我的目标是在首次运行的页面上将整个mysql表加载到$_SESSION[],然后从此处获取值(例如文本)以节省mysql请求的数量。连接AJAX(如果启用了js)技术来检索数据我的目标是流畅而快速的网站。

我知道缺点,例如在设置新会话之前新内容不会出现给用户,但我想知道我是否错过了使用此技术的基本内容。

2 个答案:

答案 0 :(得分:1)

将表数据加载到会话中并不是一个好主意:

  1. 数据可能很大
  2. 数据可能会在数据库中发生变化,但您有旧数据进入会话
  3. 会话在一段时间后过期
  4. 太多大型会话意味着服务器上的许多大变量....服务器需要大量内存。
  5. 用户无需注销系统,但会关闭浏览器并继续操作。在这种情况下,会话仍然在服务器上保持活动一段时间。
  6. 因此将整个数据保存到会话中是一个非常糟糕的主意。只需保留您经常需要的数据,并且最不可能更改。

答案 1 :(得分:0)

这不是一个好主意。由于某种原因:

  1. 假设您的桌子尺寸变得很大。
  2. $ _ SESSION数据将在* session.gc_maxlifetime *不活动秒后过期。
  3. 如果您的表格大小没有增长,那么您可以继续将数据存储在$ _SESSION中。