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

首頁 > 學院 > 開發設計 > 正文

in 和exists 比較

2019-11-08 20:46:04
字體:
來源:轉載
供稿:網友

in是把外表和內表作hash 連接,而exists 是對外表作loop 循環,每次loop 循環再對內表進行查詢。 

 一直以來認為exists 比in 效率高的說法是不準確的。如果查詢的兩個表大小相當,那么用in 和exists 差別不大。     

如果兩個表中一個較小,一個是大表,則子查詢表大的用exists,子查詢表小的用in:  

例如: 表A(小表),表B(大表)

 1:    

 select * from A where cc in (select cc from B) ;   效率低,用到了A 表上cc 列的索引;     

 select * from A where exists(select cc from B where cc=A.cc) ;   效率高,用到了B 表上cc 列的索引。     

 2:    

 select * from B where cc in (select cc from A) ;   效率高,用到了B 表上cc 列的索引;     

 select * from B where exists(select cc from A where cc=B.cc)  ;  效率低,用到了A 表上cc 列的索引。

not in 和not exists  如果查詢語句使用了not in 那么內外表都進行全表掃描,沒有用到索引;  而not extsts 的子查詢依然能用到表上的索引。所以無論那個表大,用not exists 都比not in 要快。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 剑川县| 莱芜市| 方山县| 封丘县| 托克逊县| 峨边| 通州区| 高青县| 白玉县| 东丰县| 方山县| 湾仔区| 汾西县| 眉山市| 北川| 柯坪县| 错那县| 铅山县| 麻江县| 原阳县| 宜兰县| 宜都市| 富裕县| 茌平县| 抚宁县| 桃江县| 札达县| 白河县| 磐石市| 兴化市| 宝应县| 黄山市| 桂阳县| 东乌珠穆沁旗| 抚州市| 长白| 苗栗县| 灵台县| 盖州市| 邓州市| 望奎县|