When you open the main page with type "category blog", there are query without limits, which runs through all the records in table of com_content (_content), which creates high load on the database.
If set type of main page menu item as "Blog of category" it generate SQL querry without limits.
File: \components\com_content\models\articles.php
Function: function getListQuery()
Example of querry:
Query_time: 60.808180
Lock_time: 0.000460
Rows_sent: 46159
Rows_examined: 1245897
SET timestamp=1376672974; SELECT a.id, a.title, a.alias, a.title_alias, a.introtext, a.checked_out, a.checked_out_time, a.catid, a.created, a.created_by, a.created_by_alias, CASE WHEN a.modified = 0 THEN a.created ELSE a.modified END as modified, a.modified_by, uam.name as modified_by_name,CASE WHEN a.publish_up = 0 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, 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,( SELECT MAX(contact.id) AS id FROM qitw0_contact_details AS contact WHERE contact.published = 1 AND contact.user_id = a.created_by) as contactid,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 qitw0_content AS a LEFT JOIN qitw0_content_frontpage AS fp ON fp.content_id = a.id LEFT JOIN qitw0_categories AS c ON c.id = a.catid LEFT JOIN qitw0_users AS ua ON ua.id = a.created_by LEFT JOIN qitw0_users AS uam ON uam.id = a.modified_by LEFT JOIN qitw0_categories as parent ON parent.id = c.parent_id LEFT JOIN qitw0_content_rating AS v ON a.id = v.content_id LEFT OUTER JOIN (SELECT cat.id as id FROM qitw0_categories AS cat JOIN qitw0_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) AND c.access IN (1,1) AND CASE WHEN badcats.id is null THEN a.state ELSE 0 END = 1 AND (a.catid = 18 OR a.catid IN ( SELECT sub.id FROM qitw0_categories as sub INNER JOIN qitw0_categories as this ON sub.lft > this.lft AND sub.rgt < this.rgt WHERE this.id = 18 AND sub.level <= this.level + 1)) AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2013-08-16 17:07:51') AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2013-08-16 17:07:51') ORDER BY CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END DESC , a.created;
Type: "category blog"
In Category options: Subcategory Levels - 1
In Blog Layout Options:
Leading Articles - 0
Intro Articles - 16
Columns - 2
Links 5
Include Subcategories - 1
I have database with ~46 000 of Articles after export from old CMS (there are news portal), 95% of articles in 1 category and 7 sub categories.
If item type not main page there are correct query with limits.
Thanks for reporting this. At this time we are only using github as the place to submit code fixes so I am closing the report here. The actual reporting of issues and testing fixes is still taking place on Joomlacode.
As it has been some time since you opened this issue can you please confirm that it is still valid with the current Master or Joomla 3.2 beta.
If it is still valid please can you open an item on the Joomlacode tracker in the appropriate area.
CMS Bug Reports: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemBrowse&tracker_id=8103
CMS Feature Requests: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemBrowse&tracker_id=8549
Title |
|
||||||
Labels |
Added:
?
Removed: ? ? |
||||||
Build | ⇒ | staging |
I had some issue with 60 000 of articles. Besides if I set output of articles with custom module (contain correct SQL querry) any way this querry iwhout limits has appears!