Joomla长慢查询导致503错误

时间:2016-10-12 14:41:17

标签: joomla3.0

目前我有一个Joomla 3.6.2新闻网站。这里我们显示新闻等等。

现在我们每天上传吨或文章,我们有付费订阅者的登录系统。

问题是我有一些长时间的慢查询问题。正在耗尽我的资源。

我有4个CPU内核3.0 GHz和7GB内存。每隔几秒钟CPU和RAM就会达到100%,然后再慢慢下降。这导致网站上的503。

你可以看到这很烦人。现在我的主持人告诉我,以下查询导致了这个问题;

1. Executed 3h 55m 25s ago for 47.63166 sec on Database --> *********
Date: 2016-10-11 05:25:56 Query_time: 47.631660 Rows_examined: 179766: Rows_sent 10757 Lock_time: 0.000539
SELECT a.id, a.title, a.alias, a.introtext, a.fulltext, a.checked_out,
   a.checked_out_time, a.catid, a.created, a.created_by, a.created_by_alias,
   CASE WHEN a.modified = '0000-00-00 00:00:00'
   THEN a.created ELSE a.modified END as modified, a.modified_by,
   uam.name as modified_by_name,
   CASE WHEN a.publish_up = '0000-00-00 00:00:00'
   THEN a.created ELSE a.publish_up END as publish_up,
   a.publish_down, a.images, a.urls, a.attribs, a.metadata,
   a.metakey, a.metadesc, a.access, a.hits, a.xreference, a.featured,
   a.language, LENGTH(a.fulltext) AS readmore,
   CASE WHEN badcats.id is not null THEN 0 ELSE a.state END AS state,
   c.title AS category_title, c.path AS category_route,
   c.access AS category_access, c.alias AS category_alias,CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name END AS author,ua.email AS author_email,parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias,ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count,c.published, CASE WHEN badcats.id is null THEN c.published ELSE 0 END AS parents_published FROM sxm_content AS a LEFT JOIN sxm_categories AS c ON c.id = a.catid LEFT JOIN sxm_users AS ua ON ua.id = a.created_by LEFT JOIN sxm_users AS uam ON uam.id = a.modified_by LEFT JOIN sxm_categories as parent ON parent.id = c.parent_id LEFT JOIN sxm_content_rating AS v ON a.id = v.content_id LEFT OUTER JOIN (SELECT cat.id as id FROM sxm_categories AS cat JOIN sxm_categories AS parent ON cat.lft BETWEEN parent.lft AND parent.rgt WHERE parent.extension = 'com_content' AND parent.published != 1 GROUP BY cat.id ) AS badcats ON badcats.id = c.id WHERE a.access IN (1,1,5) AND c.access IN (1,1,5) AND CASE WHEN badcats.id is null THEN a.state ELSE 0 END = 1 AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2016-10-11 10:25:09') AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2016-10-11 10:25:09') ORDER BY c.lft, CASE WHEN a.publish_up = '0000-00-00 00:00:00' THEN a.created ELSE a.publish_up END DESC , a.created; 

对于这些查询我很新,如果我错了就纠正我,我看到查询试图从文章表中提取信息。

我不确定为什么它会遍历整个表格,我不会在1页上显示所有文章,也不会在显示1类或更多类别的所有文章时进行分页。

这刚刚发生了。我没有对网站进行任何更改,也没有更新。我安装的只是SSL证书。

我也使用CloudFlare作为我的CDN,这需要相当大的Web服务器负载。我没有使用Joomla缓存,而是使用JOTCache,因为我可以排除网站上我不想要缓存的某些位置。

我们每天有大约5k的独立访问者。

0 个答案:

没有答案