国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵东县| 阜阳市| 泰顺县| 新宾| 海晏县| 岳普湖县| 苍南县| 凤庆县| 喀喇沁旗| 盐亭县| 苗栗市| 铜鼓县| 自治县| 法库县| 双峰县| 崇州市| 钟山县| 南丰县| 搜索| 德江县| 高邑县| 子长县| 安平县| 威远县| 三穗县| 临泽县| 怀宁县| 册亨县| 双牌县| 曲麻莱县| 乌审旗| 天长市| 游戏| 林西县| 噶尔县| 兴山县| 水富县| 白水县| 承德县| 遂平县| 永泰县|