아래 쿼리에서 확장 설명을 실행 중이며 왜 이런 일이 발생하는지 잘 모르겠습니다. site.id, site.parent_id, and site.enabled
에 색인을 추가했지만 여전히 임시 테이블을 만드는 중입니다.쿼리에서 임시 테이블 사용 방지
SELECT site.label AS site_label, deal . * , site.id AS site_id
FROM site
LEFT JOIN deal ON (deal.site_id = site.id
AND DAYOFYEAR(deal.created) = DAYOFYEAR(NOW()))
WHERE (
site.id =2
OR site.parent_id =2
)
AND site.enabled =1
ORDER BY site.order ASC , deal.created DESC
임시 테이블을 사용하지 못하게하는 방법에 대한 제안 사항이 있으십니까?
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE site ALL id,parent_id,id_2 NULL NULL NULL 10 100.00 Using where; Using temporary; Using filesort
1 SIMPLE deal ref site_id site_id 4 dealclippings.site.id 235 100.00
"임시 테이블"레이블을 사용하지 않고 쿼리가 더 빨리 실행되도록하려면 어떻게해야합니까? '여전히 임시 테이블을 만드는 중이 야. '그래서 뭐? – zerkms