오라클 BETWEEN과 LIKE 스캔 범위를 비교 해보자 :: 개발/일상_Mr.lee

오라클 BETWEEN과 LIKE 스캔 범위를 비교 해보자

Posted by Mr.mandu.
2022. 8. 31. 20:39 개발/DB

안녕하세요.

 

개발을 하다보니 이제 평소 쓰는 문구들이 궁금해 지기 시작했습니다.

앞선 포스팅에서는 in절과 '=' 구문에 대해 알아보았습니다.

 

[개발/DB] - 오라클(oracle) 등 DB에서 IN절과 '=' 개념 차이 확인

 

오늘은 between과 like 스캔 범위를 알아보겠습니다.

between이 더 명확한 표현법임에도 불구하고 like를 사용하는 이유는 편해서이다.

물론 저도 like를 주로 사용합니다.

 

이렇게 말이죠.

select * from 테이블
where 일자 like '2022%'
and 상품 = B
;

select * from 테이블
where 일자 between '202201' and '202212'
and 상품 = B
;

 

결론부터 말씀드리면 like 보다는 between을 사용하는게 더 낫습니다.

 

위의 쿼리는 다음과같이 실행됩니다.

 

 

 

그림과 같이 조건절 like는 2022년 1월의 전체 범위까지 스캔을 하게 됩니다.

적당한 데이터를 조회하는데는 상관이 없어보이지만

 

대용량 데이터를 조회하는 쿼리가 느리다면 튜닝 할 필요는 있어 보입니다.

 

모두 좋은 하루 보내세요.