【问题标题】:storing mysql results into $_SESSION[] variables将 mysql 结果存储到 $_SESSION[] 变量中
【发布时间】:2014-02-08 09:37:49
【问题描述】:

您好,我想谈谈您对这个策略的看法。

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

我知道缺点,例如在设置新会话之前不会向用户显示新内容,但我想知道我是否没有错过使用这种技术的基本内容。

【问题讨论】:

  • 会话存储临时数据的目的,保存整个表可能效率不高...
  • 我会使用带有 ajax 的本地存储并忘记会话,因为您仍然必须将相同的数据发送给用户/浏览器才能使用它。
  • 本地存储似乎是个好主意,但非 html5 浏览器呢?在 JS 中制作整个页面并将文本存储在 JS 变量中?

标签: php mysql session resultset


【解决方案1】:

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

  1. 数据可能很大
  2. 数据库中的数据可能会发生变化,但会话中有旧数据
  3. 会话在一段时间后过期
  4. 大型会话过多意味着服务器上有很多大变量......服务器需要大量内存。
  5. 用户无需退出系统,只需关闭浏览器即可。在这种情况下,会话仍会在服务器上保持活动一段时间。

因此将整个数据保留在会话中是一个非常糟糕的主意。只需定期保留您需要的数据,并且更改的可能性最小。

【讨论】:

    【解决方案2】:

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

    1. 假设您的表变得非常大。
    2. $_SESSION 数据将在 *session.gc_maxlifetime* 秒不活动后过期。

    如果您的表大小没有增长,那么您可以继续将数据存储在 $_SESSION 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      • 2021-04-24
      • 2015-06-11
      • 2014-06-26
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多