joomla中每个用户到资产表的查询太多

时间:2013-01-23 12:00:35

标签: joomla query-optimization

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

我用过:

  • Joomla 2.5.8
  • 主要成分:CB,Kunena,SH404SEF,K2,Komento,UddeIM PMS
  • 主要模块:Gavick News 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

2 个答案:

答案 0 :(得分:0)

当然,每次使用会有相当数量的查询,因为您使用的是CB和Kunena等扩展,其中包括对每个用户的查询。除非您收到主持人的消息,说正在使用太多内存或流量太大,否则您应该没问题。

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

答案 1 :(得分:0)

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

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

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