mysql - Joomla session 表中的多次插入/更新

标签 mysql session joomla joomla1.5

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

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

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

最佳答案

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

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

默认情况下,Joomla 将使用 MyISAM 引擎作为 job_session 表。这会导致很多表崩溃,所以我不得不将其更改为 InnoDB,这解决了崩溃问题。它还可能会提高性能,但无法对此发表评论。

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

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

关于mysql - Joomla session 表中的多次插入/更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20951974/

相关文章:

php - iPhone 网络应用程序,不存储 cookie

php - session 在新页面 View 中被破坏

configuration - 如何在 Joomla 中禁止 TinyMCE 剥离/修改我的 HTML?

php - Joomla 插件 : "Another plugin is already using the named folder"

mysql - 从 Laravel 5 表单中插入多个选定值

php - 单击表格行中的链接后,更改相应 MYSQL 数据库记录的单元格值?

mysql - 在 Redhat 上安装 mysql,无需互联网,也无需 cd/dvd iso

ajax - 当我在另一个 github 选项卡上注销时,一个 github 选项卡如何知道

php - 我们如何将动态创建的文本框值获取到另一个 php 文件

html - 在 joomla (yootheme warp 7) 中编辑 Logo 链接目标