在Joomla的会话表中多次插入/更新

时间:2014-01-06 14:21:47

标签: mysql session joomla joomla1.5

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

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

  • 为什么Joomla这样做有什么具体原因?
  • 是否有更好的替代解决方案可以摆脱单个表上的多个插入/更新?

1 个答案:

答案 0 :(得分:1)

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

每次用户加载页面时,都会创建或更新会话(如果已存在)。这就是您查看该表上所有活动的原因。

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

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

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