조인과 하위 쿼리를 사용하여 쿼리를 작성합니다. 실행에는 2 분이 걸립니다. 나는 그것을 어떻게 최적화 할 수 없는가? 어떠한 제안?어떻게이 하위 쿼리를 최적화 할 수 있습니까?
select oli.*,oli2.* from order o
LEFT JOIN order_line_item oli ON oli.order_id = o.id
LEFT JOIN order_line_item oli2 ON oli2.id
= (SELECT oli3.id FROM order_line_item oli3
WHERE oli3.order_id = o.id
AND oli.code = oli3.alternative
GROUP BY oli3.code, o.id
LIMIT 1) WHERE o.store_id != 100 GROUP BY oli.code, oli2.code, o.id
내 하위 쿼리는 올바르게 작동하지만 시간이 오래 걸립니다. 실제로, 그것은 대체 제품을 찾습니다. 하위 쿼리를 최적화하려면 어떻게해야합니까?
쿼리에 관련된 모든 테이블에 대해 'SHOW CREATE TABLE'출력을 제공하십시오. –
또한'*'를 선택해야합니까? 모든 열이 필요하지 않은 경우 테이블 구조 (위에서 언급 한 내용)와 필요한 열에서 배운 내용을 기반으로 향상된 기능을 사용할 수 있습니다. –
'*'때문에'GROUP BY'의 잘못된 사용과 같은 냄새가납니다. –