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

首頁 > 數據庫 > Oracle > 正文

簡述Oracle中in和exists的不同

2024-08-29 14:00:30
字體:
來源:轉載
供稿:網友

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

如果兩張表大小差不多,那么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與==效果是相同的

總結

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


注:相關教程知識閱讀請移步到oracle教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通城县| 古交市| 兴仁县| 邢台市| 安丘市| 嘉荫县| 富裕县| 监利县| 民乐县| 阳谷县| 德保县| 凯里市| 炉霍县| 筠连县| 绥宁县| 罗田县| 奉化市| 兴山县| 南华县| 龙胜| 内乡县| 灵丘县| 隆安县| 吕梁市| 东方市| 兴仁县| 疏勒县| 嘉义市| 民丰县| 特克斯县| 桐城市| 寿宁县| 肥东县| 舒城县| 开原市| 鄂托克前旗| 昂仁县| 论坛| 阿尔山市| 靖安县| 平遥县|