国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

數據庫查詢優化之子查詢優化

2024-07-25 19:09:29
字體:
來源:轉載
供稿:網友

1. 案例

取所有不為掌門人的員工,按年齡分組!

select age as '年齡', count(*) as '人數' from t_emp where id not in (select ceo from t_dept where ceo is not null) group by age;

數據庫,查詢,優化,子查詢優化

如何優化?

①解決dept表的全表掃描,建立ceo字段的索引:

數據庫,查詢,優化,子查詢優化

此時,再次查詢:

數據庫,查詢,優化,子查詢優化

②進一步優化,替換not in。

上述SQL可以替換為:

select age as '年齡',count(*) as '人數' from emp e left join dept d on e.id=d.ceo where d.id is null group by age;

數據庫,查詢,優化,子查詢優化

結論: 在范圍判斷時,盡量不要使用not in和not exists,使用 left join on xxx is null代替。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 班戈县| 兖州市| 贡嘎县| 当阳市| 佛冈县| 东至县| 嘉祥县| 化隆| 龙川县| 马关县| 多伦县| 阜宁县| 天气| 故城县| 日照市| 临清市| 深圳市| 丰顺县| 通河县| 图们市| 太康县| 将乐县| 芮城县| 炉霍县| 九龙城区| 六盘水市| 永嘉县| 汤阴县| 阿合奇县| 岑溪市| 容城县| 临朐县| 吉首市| 德昌县| 晋州市| 扎鲁特旗| 平顺县| 伊春市| 广元市| 霍城县| 惠安县|