<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        sql中in,notin,exists,notexists效率分析_MySQL

        來源:懂視網 責編:小采 時間:2020-11-09 20:10:07
        文檔

        sql中in,notin,exists,notexists效率分析_MySQL

        sql中in,notin,exists,notexists效率分析_MySQL:in和exists執行時,in是先執行子查詢中的查詢,然后再執行主查詢。而exists查詢它是先執行主查詢,即外層表的查詢,然后再執行子查詢。 exists 和 in 在執行時效率單從執行時間來說差不多,exists要稍微優于in。在使用時一般應該是用exists而不用in
        推薦度:
        導讀sql中in,notin,exists,notexists效率分析_MySQL:in和exists執行時,in是先執行子查詢中的查詢,然后再執行主查詢。而exists查詢它是先執行主查詢,即外層表的查詢,然后再執行子查詢。 exists 和 in 在執行時效率單從執行時間來說差不多,exists要稍微優于in。在使用時一般應該是用exists而不用in

        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適合于外表小而內表大的情況。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        sql中in,notin,exists,notexists效率分析_MySQL

        sql中in,notin,exists,notexists效率分析_MySQL:in和exists執行時,in是先執行子查詢中的查詢,然后再執行主查詢。而exists查詢它是先執行主查詢,即外層表的查詢,然后再執行子查詢。 exists 和 in 在執行時效率單從執行時間來說差不多,exists要稍微優于in。在使用時一般應該是用exists而不用in
        推薦度:
        標簽: in 效率 sql
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top 主站蜘蛛池模板: 456亚洲人成影院在线观| 亚洲综合区图片小说区| 国产大陆亚洲精品国产| 国产美女精品视频免费观看| 亚洲国产欧美国产综合一区| 国产精品国产自线拍免费软件| 色屁屁在线观看视频免费| 亚洲成AV人在线观看网址| fc2免费人成在线视频| 国产亚洲精品观看91在线| 国产麻豆成人传媒免费观看| 亚洲综合精品一二三区在线| 国产精品成人观看视频免费| 亚洲毛片基地4455ww| 国产精品99久久免费| 一级片在线免费看| 亚洲91av视频| 日本免费网址大全在线观看| 亚洲精品无码久久| 亚洲精品和日本精品| 无码国产精品一区二区免费vr| 亚洲性无码av在线| 国产精品嫩草影院免费| 两个人看www免费视频| 亚洲精品国产成人| 国产美女精品视频免费观看| 91福利免费网站在线观看| 亚洲男人电影天堂| 日本xxwwxxww在线视频免费| 一级毛片免费毛片毛片| 久久久久久久久亚洲| 四虎成人免费网站在线| 久久免费高清视频| 亚洲精品中文字幕无码A片老| 在线观看国产区亚洲一区成人| 88av免费观看入口在线| 国产精品亚洲lv粉色| 精品亚洲A∨无码一区二区三区| 免费无码看av的网站| 美女被cao网站免费看在线看| 亚洲综合国产成人丁香五月激情 |