<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.6S
用explain 查看:
<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.03s左右
Explain查看
為什麼這兩種查詢方式的效率會有這麼大的差別呢?
網上很多都說這兩種寫法的效率是差不多的;但是我這一個是0.6 和一個0.03,兩者差別還是挺大的,這是什麼原因造成的呢?是因為我寫的SQl語句有問題還是別的原因?