SQL IN Exists 介紹(查詢 效率/速度/加快/加速)
SQL IN Exists 介紹(查詢 效率/速度/加快/加速)
http://eeluck.pixnet.net/blog/post/27559378-in%E5%92%8Cexists%E7%9A%84%E5%B7%AE%E7%95%B0
文章01.
較慢
SELECT *
FROM TB_RBND903
WHERE BND_PROD_CD IN ( SELECT PROD_CD FROM TB_RBND601 )
較快
SELECT *
FROM TB_RBND903 A
WHERE EXISTS ( SELECT PROD_CD
FROM TB_RBND601
WHERE PROD_CD = A.BND_PROD_CD
)
文章02.
in和EXISTS 大多是效能上的考量
1.in的用法原理是在於,需要以逐行比較,效能性來說會比較慢
2.EXISTS是用一整個集合來做比較,用來過濾不要的資料,在效能上來說會比較快。
簡單的一句話,外大內小=IN,外小內大=EXISTS,這是一個實用的概略評估方法,在大部分的情況下是適用的。
3 thoughts on “SQL IN Exists 介紹(查詢 效率/速度/加快/加速)”
SQL
查詢
效率
速度
加快
加速
優化
效能
SQL 效率/速度 提升/加快 方法
https://mp.weixin.qq.com/s/yW5Xy7yJ8i0iZ0LXhAMFWg
In 或 not in在SQL語句中經常用到,尤其當子查詢中有空值的時候,要謹慎考慮。 因為即使寫了”正確”的腳本,但是返回結果卻不正確,也不出錯。
在不是很理解的情況下,最好使用 exists和 not exists來替換。 而且exists查詢更快一些,因為只要在子查詢找到第一個符合的值就不繼續往下找了,所以能用exists就用吧。