Блог категории, выводит по 20 материалов из одной категории.
0.003712 секунд
$mtime = microtime();
$mtime = explode(" ",$mtime);
$tstart = $mtime[1] + $mtime[0];
$mysqli = new mysqli("localhost", "****", "****", "****");
$mysqli->query("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 j_content AS a
LEFT JOIN j_content_frontpage AS fp
ON fp.content_id = a.id
LEFT JOIN j_categories AS c
ON c.id = a.catid
LEFT JOIN j_users AS ua
ON ua.id = a.created_by
LEFT JOIN j_users AS uam
ON uam.id = a.modified_by
LEFT JOIN j_categories as parent
ON parent.id = c.parent_id
LEFT JOIN j_content_rating AS v
ON a.id = v.content_id
LEFT
OUTER JOIN (SELECT cat.id as id
FROM j_categories AS cat JOIN j_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
CASE WHEN badcats.id is null THEN a.state ELSE 0 END IN (0,1,2)
AND a.catid = 209
ORDER BY c.path, a.created DESC , a.created
LIMIT 100, 120");
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $tstart);//Вычисляем разницу
printf ("%f секунд\n", $totaltime);
7.240856 секунд
$mtime = microtime();
$mtime = explode(" ",$mtime);
$tstart = $mtime[1] + $mtime[0];
$db = JFactory::getDBO();
$qt = $db->getQuery(true)->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 j_content AS a
LEFT JOIN j_content_frontpage AS fp
ON fp.content_id = a.id
LEFT JOIN j_categories AS c
ON c.id = a.catid
LEFT JOIN j_users AS ua
ON ua.id = a.created_by
LEFT JOIN j_users AS uam
ON uam.id = a.modified_by
LEFT JOIN j_categories as parent
ON parent.id = c.parent_id
LEFT JOIN j_content_rating AS v
ON a.id = v.content_id
LEFT
OUTER JOIN (SELECT cat.id as id
FROM j_categories AS cat JOIN j_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
CASE WHEN badcats.id is null THEN a.state ELSE 0 END IN (0,1,2)
AND a.catid = 209
ORDER BY c.path, a.created DESC , a.created
LIMIT 100, 120");
$db->setQuery($qt);
$db->execute();
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $tstart);
printf ("%f секунд\n", $totaltime);
В админке выставлено MySqli
запрос взят из отладки.
Подскажите куда смотреть ? Плагины тут не используются... Не знаю куда копать.