這篇文章將為大家詳細(xì)講解有關(guān)數(shù)據(jù)庫查詢優(yōu)化之子查詢優(yōu)化的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
黃驊ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
1. 案例
取所有不為掌門人的員工,按年齡分組!
select age as '年齡', count(*) as '人數(shù)' from t_emp where id not in (select ceo from t_dept where ceo is not null) group by age;
如何優(yōu)化?
①解決dept表的全表掃描,建立ceo字段的索引:
此時,再次查詢:
②進(jìn)一步優(yōu)化,替換not in。
上述SQL可以替換為:
select age as '年齡',count(*) as '人數(shù)' from emp e left join dept d on e.id=d.ceo where d.id is null group by age;
結(jié)論: 在范圍判斷時,盡量不要使用not in和not exists,使用 left join on xxx is null代替。
關(guān)于“數(shù)據(jù)庫查詢優(yōu)化之子查詢優(yōu)化的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。