Производительность Joomla на больших объемах контента

908db9d07e1a44e42a76993d1e8d5aac.jpg
Время запроса: 972.79 ms После последнего запроса: 3.96 ms Память запроса: 0.012 MB Память до запроса: 7.378 MB Выбрано строк: 5

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 jos_content AS a

  LEFT JOIN jos_categories AS c 
  ON c.id = a.catid

  LEFT JOIN jos_users AS ua 
  ON ua.id = a.created_by

  LEFT JOIN jos_users AS uam 
  ON uam.id = a.modified_by

  LEFT JOIN jos_categories as parent 
  ON parent.id = c.parent_id

  LEFT JOIN jos_content_rating AS v 
  ON a.id = v.content_id

  LEFT 
  OUTER JOIN (SELECT cat.id as id 
  FROM jos_categories AS cat JOIN jos_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,2,3,6) 
  AND c.access IN (1,1,2,3,6) 
  AND 
  CASE WHEN badcats.id is null THEN a.state ELSE 0 END = 1 
  AND a.catid IN (9,11,12,13,15,21,24,25) 
  AND a.publish_up >= DATE_SUB('2018-04-30 03:36:50', INTERVAL 60 DAY)

  ORDER BY a.hits DESC 
  LIMIT 5


© Habrahabr.ru