0

我的网站对数据库生成大量查询,每个用户生成 6 个查询。我试图找出它的来源,但我的知识不足以找到。如果有人可以帮助我如何完善该查询的来源?

我用了:

  • Joomla 2.5.8
  • 主要组件:CB、Kunena、SH404SEF、K2、Komento、UddeIM PMS
  • 主要模块:加维克新闻PRO4
  • 阻止垃圾邮件 IP
  • 阻止机器人

为每个用户生成的查询:

SELECT *
FROM `_users`
WHERE `id` = 15

SELECT `g`.`id`,`g`.`title`
FROM `_usergroups` AS g
INNER JOIN `_user_usergroup_map` AS m ON m.group_id = g.id
WHERE `m`.`user_id` = 15

SELECT b.id
FROM _user_usergroup_map AS map
LEFT JOIN _usergroups AS a ON a.id = map.group_id
LEFT JOIN _usergroups AS b ON b.lft <= a.lft
                           AND b.rgt >= a.rgt
WHERE map.user_id = 15

SELECT a.rules
FROM _assets AS a
WHERE (a.id = 1)
GROUP BY a.id, a.rules, a.lft

SELECT id
FROM _assets
WHERE parent_id = 0

SELECT b.rules
FROM _assets AS a
LEFT JOIN _assets AS b ON b.lft <= a.lft
                       AND b.rgt >= a.rgt
WHERE (a.id = 1 OR a.parent_id = 0)
GROUP BY b.id, b.rules, b.lft
ORDER BY b.lft
4

2 回答 2

0

实际上,我们只是修复了规则字段中生成过多查询的错误。它将在下周发布的 3.0.4 中修复,并且每当另一个 2.5 版本发布时。在此期间,您可以自己修复它。

https://github.com/joomla/joomla-platform/pull/1792

但这不是你要问的。查询的数量并不是真正的问题(这是完全合理的),问题是它们有多快。

于 2013-01-24T01:06:43.070 回答
0

当然,每次使用都会有相当数量的查询,因为您正在使用诸如 CB 和 Kunena 之类的扩展,其中包括针对每个用户的查询。除非您从主机收到消息说正在使用太多内存或流量过多,否则应该没问题。

Joomla 是一个 CMS,因此当有相当数量的用户时,需要预料到这些事情。

于 2013-01-23T12:04:02.667 回答