오라클 BETWEEN과 LIKE 스캔 범위를 비교 해보자
안녕하세요.
개발을 하다보니 이제 평소 쓰는 문구들이 궁금해 지기 시작했습니다.
앞선 포스팅에서는 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월의 전체 범위까지 스캔을 하게 됩니다.
적당한 데이터를 조회하는데는 상관이 없어보이지만
대용량 데이터를 조회하는 쿼리가 느리다면 튜닝 할 필요는 있어 보입니다.
모두 좋은 하루 보내세요.
'개발 > DB' 카테고리의 다른 글
오라클(oracle) 등 DB에서 IN절과 '=' 개념 차이 확인 (0) | 2022.08.30 |
---|---|
[oracle] 오라클 view 생성 등 기초 알아보기(view, mview) (0) | 2020.06.10 |
[oracle] synonym(동의어) 생성 및 삭제 (0) | 2020.06.09 |
[오라클(oracle)] join update 힌트로 해결 (2) | 2020.03.04 |
[oracle]오라클 시퀀스(sequence) 생성 및 삭제 (0) | 2019.12.03 |
[오라클] 인덱스의 주의사항 및 관리방법(쿼리문 확인) (0) | 2019.12.03 |
[오라클] 인덱스의 원리 및 개념과 종류(B-TREE, BITMAP INDEX) (6) | 2019.11.30 |