最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡述Oracle中in和exists的不同

 更新時間:2017年09月14日 09:21:54   投稿:mrr  
大家一直認(rèn)為exists比in速度快,其實是不準(zhǔn)確的,接下來腳本之家小編給大家分享Oracle中in和exists的不同,感興趣的朋友參考下吧

一直以來,大家認(rèn)為exists比in速度快,其實是不準(zhǔn)確的。且看接下來的具體分析:in其實是將外表和內(nèi)表進行hash join,exists是先對外表進行l(wèi)oop操作,然后每次loop后再對內(nèi)表進行查詢。

如果兩張表大小差不多,那么exists和in的效率差不多。

例如: 一張大表為A,一張小表B

一、第一種情況

select * from A where mm in (select mm from B)

效率高,這里用到的是大表A上的索引

select * from B exists (select mm from A where mm=B.mm)

效率高,這里用到的是小表B上的索引

二、第二種情況

select * from B where mm in (select mm from A)

效率低,這里用到的是小表B上的索引

select * from A exists (select mm from B where mm=A.mm)

效率高,這里用到的是大表A上的索引

三、第三種情況

not exists 在使用時依然會用到表上的索引,但是not in會進行全盤掃描

因此,not exists 始終比not in 的效率高

四、第四種情況

in與==效果是相同的

總結(jié)

以上所述是小編給大家介紹的Oracle中in和exists的不同,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

桦甸市| 中超| 石狮市| 达孜县| 航空| 日喀则市| 红桥区| 会东县| 台州市| 襄樊市| 丰镇市| 三亚市| 英超| 怀宁县| 南江县| 饶阳县| 兴宁市| 吐鲁番市| 南昌县| 永胜县| 平定县| 元江| 建始县| 丰顺县| 北碚区| 工布江达县| 和田县| 乌拉特前旗| 乌拉特前旗| 开江县| 禹州市| 宜黄县| 淮安市| 沽源县| 水城县| 定南县| 富裕县| 格尔木市| 德格县| 朝阳区| 忻城县|