【问题标题】:Multiple insert / update in session table of JoomlaJoomla会话表中的多次插入/更新
【发布时间】:2014-01-06 14:21:46
【问题描述】:

我有一个基于 Joomla 1.5 的 Intranet 系统。该系统上的用户负载在 100-6k 之间变化。我们已经对这个系统进行了很多定制,并且只使用了 Joomla 核心功能。我知道 Joomla 1.5 是一个过时的系统,需要升级到较新的版本或至少 1.5.26。但是,我们已经升级了 PHP 和 apache 并管理了安全漏洞。因此,升级 Joomla 不是这个问题的问题。

我们已经看到 Joomla 正在使用 jos_session 表来管理应用程序中的会话。每次单击每个用户时,都会在 jos_session 表中执行更新查询。因此,我可以看到 jos_session 上的多个插入(用于新会话)更新查询(更新时间戳)正在执行。

  • Joomla 这样做有什么具体原因吗?
  • 有没有更好的替代解决方案来消除单个表上的多次插入/更新?

【问题讨论】:

    标签: mysql session joomla joomla1.5


    【解决方案1】:

    Joomla 实现了自己的自定义会话管理(而不是使用 PHP 提供的)。它的会话管理是通过数据库表实现的。

    每次用户加载您的页面时,都会创建或更新一个会话(如果已经存在)。这就是为什么您会看到该表上的所有活动。

    默认情况下,Joomla 会为 job_session 表使用 MyISAM 引擎。这会导致我的许多表崩溃,所以我不得不将其更改为 InnoDB 并修复了崩溃问题。它也可能会提高性能,但不能对此发表评论。

    在 Joomla 后端:站点 -> 全局配置 -> 系统 您可以将会话处理程序设置为“无”,这将停止使用数据库并默认使用 PHP 会话。但是,并非所有人都建议您这样做。您可以自己进行测试,看看哪种方法更适合您。

    当然,在开始使用设置进行测试之前,请确保您有网站备份。

    【讨论】:

    • 你能分享一下PHP将如何维护会话的信息吗?
    • 当然。 PHP 默认将会话数据保存在磁盘上的文件中。以下是文档所说的:link
    • 谢谢。对提供的有关“无”影响的信息 +1 票。
    猜你喜欢
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    相关资源
    最近更新 更多