아래의 Query2에서 'order by'절을 사용하면 첫 번째 결과가 즉시 반환되는 동안 1 분 이상 걸리는 이유가 무엇인지 알 수 없습니다. '에 의해 주문이 작업을 수행 할 수있는 더 나은 방법이 있나요Mysql Order By Group By By 매우 느린 쿼리
빠른 :
select c.id, max(date(a.sent)) as sent,
if(c.id in (select id from bin where (num=1 or num=2)),1,0) as done
from test c, test2 a
where c.id=a.id
group by c.id
limit 1;
느린
select c.id, max(date(a.sent)) as sent,
if(c.id in (select id from bin where (num=1 or num=2)),1,0) as done
from test c, test2 a
where c.id=a.id
group by c.id
order by done, sent
limit 1;
대부분의 현대 RDBMS에서 하위 쿼리는 조인보다 더 나쁩니다. 이것은 두 RDBMS가 동등한시기를 알 수없는 오래된 RDBMS에서만 발생합니다. 오늘날, 때로는 하위 쿼리가 더 좋은 방법이 될 수 있습니다 ... 모든 것이 다릅니다. –