매우 오랫동안 실행되는 다음 쿼리가 있습니다. article_category 및 article 테이블에는 약 250,000 개의 행이 있습니다. 몇 가지 다중 열 인덱스를 시도했지만 쿼리 속도를 높이는 방법은 없습니다. 현재의 EXPLAIN은 다음과 같습니다 (현재 사용되는 상태 색인은 article.status와 article.published로 이루어져 있으며 현재 옵티마이 저는이를 사용하기로 결정했습니다).GROUP BY 및 ORDER BY 절로 인해 쿼리가 느려집니다.
이 쿼리의 속도를 높이기 위해 만들 인덱스에 대한 조언을 해 줄 수 있습니까?
1 단순한 참조 PRIMARY, 상태, 게시 된 상태 1 const 109338 where using; 임시 사용;
1 간단한 C eq_ref PRIMARY PRIMARY 4 e15.ac.category_id 1
SELECT SQL_NO_CACHE `a`.`id`,`a`.`title`,`a`.`perex`,`a`.`published`,`a`.`updated`,`a`.`article_type_id`,`a`.`tag` ,`ac`.`category_id`,`c`.`name`,`a`.`top_hp`,`ac`.`top_category`,`a`.`is_pr`,`a`.`seo_title`,`c`.`id_domain`
FROM `article` `a`
JOIN `article_category` `ac` ON `ac`.`article_id` = `a`.`id`
JOIN `category` `c` ON `ac`.`category_id`=`c`.`id`
WHERE `ac`.`category_id` IN (109,118,38,39,40,62,63,119,110,111,112,113,114,115,116,117,121,122)
AND `a`.`status`='published' AND a.published < "2014-02-03 22:45:00"
GROUP BY `a`.`id`
ORDER BY `a`.`published` DESC
LIMIT 0,8
이 수행 (280 개의) (고정시) –
:-) 시도에 대한,하지만 덕분에 어쩌면 당신은, 쿼리를 재 설계 할 수 있습니다 더 악화은 " 'A'..."조항이 가입 전에도 수행됩니다. – alexbrickwedde