728x90
반응형
SELECT * FROM table1
WHERE (id = 1 OR id = 2 OR id = 3)
OR 사용한 쿼리
SELECT * FROM table1
WHERE id IN (1, 2, 3)
IN 사용한 쿼리
위 두 쿼리는 같은 결과 값을 출력해줍니다.
하지만 성능에는 차이가 존재합니다.
지금은 많은 데이터를 비교하지 않아 성능차이가 눈에 보일 정도는 아니지만
많은 양의 데이터들을 조회하게 된다면 성능의 차이는 눈에 띄게 보일 것입니다.
가독성 면에서도 IN을 사용하는게 더 효과적일 거 같습니다.
IN을 사용할 수 있을 쿼리라면 OR 사용을 지양하는 것이 좋습니다.
어느정도의 성능차이가 있는지 비교를 하는 글을 찾아봤습니다.
참고한 자료에서는 조건절에 10000개의 데이터를 가지고 비교했더니 IN으로 만들어진 쿼리가 약 3배 정도 빠른 성능을 보여주었습니다.
가물가물.. 하지만 만들어왔던 프로젝트 중에서도 몇 가지 이런식으로 만들어놨던 기억이 있는 거 같아서...
있다면 얼른 수정을 해야겠습니다.
* 참고
728x90
반응형
'Dev > DB' 카테고리의 다른 글
[MySQL] 회원 최근 사용내역 날짜 뽑아내기 (0) | 2021.09.01 |
---|