<code>SELECT B.dict_data_name, SUM(A.pv) AS pv FROM shw_mo_health_news A INNER JOIN bas_dict_data B ON A.third_name_dictid = B.item_id WHERE A.class_level = 3 AND B.class_id = 1012 AND A.collect_date >= '2016-04-01' AND A.collect_date <= '2016-05-31' GROUP BY A.third_name_dictid ORDER BY pv DESC;</code>
사용자의 실제 쿼리 시간은 약 0.6초
설명과 함께 보기:
<code>SELECT B.dict_data_name, A.PV FROM ( SELECT hn.third_name_dictid, SUM(hn.pv) AS PV FROM shw_mo_health_news hn WHERE hn.class_level = 3 AND hn.collect_date >= '2016-04-01' AND hn.collect_date <= '2016-05-31' GROUP BY hn.third_name_dictid ) A, ( SELECT dd.item_id, dd.dict_data_name FROM bas_dict_data dd WHERE dd.class_id = 1012 ) B WHERE A.third_name_dictid = B.item_id ORDER BY PV DESC</code>
실제 시간은 약 0.03초
보기 설명
이 두 가지 쿼리 방법의 효율성에 왜 그렇게 큰 차이가 있습니까?
인터넷에서 많은 사람들이 이 두 가지 작성 방법의 효율성이 거의 동일하다고 말하지만 제 것은 0.6이고 다른 것은 0입니다. 0.03, 둘의 차이는 아직 꽤 크네요. 제가 작성한 SQL문에 문제가 있어서 그런걸까요?