日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql中 in , not in , exists , not exists效率分析

發布時間:2024/7/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql中 in , not in , exists , not exists效率分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

in和exists執行時,in是先執行子查詢中的查詢,然后再執行主查詢。而exists查詢它是先執行主查詢,即外層表的查詢,然后再執行子查詢。

exists 和 in 在執行時效率單從執行時間來說差不多,exists要稍微優于in。在使用時一般應該是用exists而不用in

如果子查詢得出的結果集記錄較少,主查詢中的表較大且又有索引時應該用in,反之如果外層的主查詢記錄較少,子查詢中的表大,又有索引時使用exists。IN時不對NULL進行處理。

??????? not exists 和 not in 比較時,not exists 的效率比較高。

??????? 為了說明測試結果,我把emp1表中的數據到了315392條。emp2中刪除只有2條件數據。測試的依據是執行的時間來說明的。

??????? emp1中的數據記錄情況。

??????????????? SQL> select count(*) from emp1;

? COUNT(*)

----------

315392

emp2中的數據記錄情況:

SQL> select count(*) from emp2;

?

? COUNT(*)

----------

? ?2

1、? 執行exists查詢,要求在emp1中查詢出所有存在于emp2的數據總數

?SQL> select count(*) from emp1 where exists ( select null from emp2 where emp1.ename = emp2.ename);

? COUNT(*)

----------

???? 45056

執行次數十次,最大的一次為0.125S

2、??? 使用not exists查詢出所在不在emp2中的數據總數

SQL> select count(*) from emp1 where not exists ( select null from emp2 where emp1.ename = emp2.ename);

??? ?COUNT(*)

----------

270336

執行次數十次,最大的一次為0.141S

3、執行in 查詢,要求在emp1中查詢出所有存在于emp2的數據總數

SQL> select count(*) from emp1 where ename in ( select ename from emp2);

? COUNT(*)

----------

???? 45056

執行十次,最大的一次為0.141S

4、使用not in查詢出所在不在emp2中的數據總數

SQL> select count(*) from emp1 where ename not in ( select ename from emp2 );

? COUNT(*)

----------

270336

執行十次,最長一次為0.328S

5、使用in查詢,調用外層與子查詢的位置,要求查詢出存在于emp2中,且存在于emp1中的數據記錄數

SQL> select count(*) from emp2 where ename in (select ename from emp1 );

? COUNT(*)

----------

??????? ?2

執行次數十次,最長的一次為0.047S

6、使用exists查詢,調用外層與子查詢的位置,要求查詢出存在于emp2中,且存在于emp1中的數據記錄數

SQL> select count(*) from emp2 where ename in (select ename from emp1 );

? COUNT(*)

----------

???????? 2

執行次數十次,最長的一次為0.047S

綜上所述:在使用in 和 exists時,個人覺得,效率差不多。而在not in 和 not exists比較時,not exists的效率要比not in的效率要高。

當使用in時,子查詢where條件不受外層的影響,自動優化會轉成exist語句,它的效率和exist一樣。(沒有驗證)

如select * from t1 where f1 in (select f1 from t2 where t2.fx='x') 這時,認為in 和 exists效率一樣。

IN適合于外表大而內表小的情況;EXISTS適合于外表小而內表大的情況。

轉載于:https://www.cnblogs.com/csl0910/p/4936344.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的sql中 in , not in , exists , not exists效率分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 草草影院在线 | 午夜视频大全 | 久久99热久久99精品 | 精品国产二区三区 | 青青青青青草 | 91久久久久国产一区二区 | 欧美日韩国产三级 | gv天堂gv无码男同在线观看 | 中国在线观看片免费 | 中文字幕在线观看视频一区二区 | 黄频网站在线观看 | 色噜噜成人 | 久久久亚洲一区 | 57pao成人国产永久免费视频 | 久久人人爽 | 日本啪啪动态图 | av播放在线 | 亚州国产| 午夜影院免费体验区 | 丰满大爆乳波霸奶 | 九一国产在线观看 | 欧美人禽杂交狂配 | 中文字幕无码乱码人妻日韩精品 | 91亚色在线观看 | 国产精品秘入口18禁麻豆免会员 | 精品一区视频 | 毛片99| 亚洲国产麻豆 | 亚洲永久在线观看 | 国产免费成人 | 国产视频精品在线 | 久久先锋 | 亚洲综合精品国产 | 久草热播 | 国产无码精品在线播放 | 日韩影院在线 | www.午夜视频 | 欧美xxxx中国 | 亚洲成人黄色 | 黑帮大佬和我的365日第二部 | 涩涩av | 拍摄av现场失控高潮数次 | 成人在线播放视频 | 青青草手机视频 | 国产xxxxxxxxx | 网友自拍第一页 | av资源免费看 | 欧美视频一二三区 | 97人妻精品一区二区三区动漫 | 成人免费毛片观看 | 激情九月天 | 夜夜夜网 | 性久久久久久久久久 | 国产高清在线视频观看 | 福利在线观看 | 国产精品美女久久久久久 | 黑丝扣逼 | 国产乱妇无码大片在线观看 | 国产精品自拍第一页 | 91桃色在线观看 | 色婷婷色综合 | 日本中文字幕网 | 人妻少妇无码精品视频区 | 国产suv精品一区二区 | 亚洲欧美精品一区二区 | 卡一卡二在线视频 | 动漫精品一区 | 成人网址在线观看 | 亚洲AV无码成人国产精品色 | 日本青青草视频 | 日韩一级在线播放 | 国产女人18水真多18精品一级做 | 国产一区在线不卡 | juliaann第一次和老师 | 51av视频| 国产精品国产一区 | 激情女主播 | 国产白浆视频 | 精品无码一区二区三区电影桃花 | 国产啊啊啊啊 | 成年人色片 | 另类天堂 | 亚洲大片免费观看 | 一级久久久久久久 | 精品一区二区在线视频 | www.色欧美| 国产精品亚洲AV色欲三区不卡 | 加勒比视频在线观看 | 欧美性受xxx| 麻豆视频在线观看免费 | 91精品免费视频 | 欧美脚交 | 日本少妇高潮喷水xxxxxxx | 日韩欧美亚洲国产精品字幕久久久 | 午夜性影院 | 欧美精品一区在线发布 | 97精品一区 | 亚洲熟妇国产熟妇肥婆 | 500部大龄熟乱视频 亚洲乱码精品 |