【資料圖】
1、對于in 和 exists的區(qū)別: 如果子查詢得出的結(jié)果集記錄較少,主查詢中的表較大且又有索引時應(yīng)該用in, 反之如果外層的主查詢記錄較少,子查詢中的表大,又有索引時使用exists。
2、其實我們區(qū)分in和exists主要是造成了驅(qū)動順序的改變(這是性能變化的關(guān)鍵),如果是exists,那么以外層表為驅(qū)動表,先被訪問,如果是IN,那么先執(zhí)行子查詢,所以我們會以驅(qū)動表的快速返回為目標,那么就會考慮到索引及結(jié)果集的關(guān)系了 ,另外IN時不對NULL進行處理。
本文分享完畢,希望對大家有所幫助。
關(guān)鍵詞: