SQL IN과 OR의 비교
2020. 9. 11. 17:40ㆍDB
728x90
OR
어떠한 논리합 관계도 표현이 가능합니다.
IN
하나의 컬럼이 여러개의 =
조건을 가지는 경우에만 가능합니다.
IN -> OR(가능)
IN
SELECT *
FROM TAB1
WHERE COL IN (1, 5, 7)
OR
SELECT *
FROM TAB1
WHERE (COL = 1 OR COL = 5 OR COL = 7)
OR -> IN(불가능)
OR
SELECT *
FROM TAB1
WHERE (COL1 = 1 OR COL = 2 OR NAME LIKE '3%')
IN을 사용할 수 있는 경우라면 OR보다 IN을 사용하는 것이 좋습니다. IN은 경우에 따라서 서브쿼리를 이용하여 보다 유연한 확장이 가능합니다. IN은 반드시 하나의 컬럼이 비교되어야 하지만 OR는 여러 개의 컬럼이 올 수 있으므로 나중에 인덱스 구성에 대한 전략을 수립할 때도 IN이 유리합니다. 그리고 IN절의 경우에는 인덱스를 이용해서 조건을 검색할 수 있지만, OR은 인덱스를 이용하지 못 합니다. OR 연산자는 정말 다른 방법이 도저히 없는 경우를 제외하고는 사용하지 않는 것이 바람직합니다.
참조: http://wiki.gurubee.net/pages/viewpage.action?pageId=2458033
728x90
'DB' 카테고리의 다른 글
DB Cluster (0) | 2020.11.20 |
---|---|
MySQL Stored Procedure의 장단점 (0) | 2020.09.17 |
MVCC (0) | 2020.06.26 |
DB Index (0) | 2020.06.19 |
Trigger (0) | 2020.06.18 |