99클럽 1일차 TIL: 쿼리 성능

2024. 4. 4. 23:1399클럽/TIL

728x90
반응형

#1. 오늘의 학습 키워드

SQL 쿼리에서 between 과 부등호의 성능 차이

  • myBatis 에서 쿼리로 어떤 날짜를 뜻하는 컬럼값을 가지는 테이블에서 날짜 범주 ( start_date 와 end_date ) 사이 조건에 부합하는 행들만 뽑아오고 싶을 떄:
    • 아래와 같은 두 가지 방식이 있다. 이때 좋은 가독성을 가지는 코드는 between 을 사용한 조건문이지만, pr Review 로 부등호가 더 낫다는 피드백을 받았다.
SELECT *
FROM table_
WHERE date BETWEEN '20240101' AND '20241231'

SELECT *
FROM table_
WHERE date >= '20240101' 
AND  date <= '20241231'
  • 이 성능의 차이에 대해서 관심을 갖고 검색하였다.

#2. 공부한 내용

#3. 오늘의 회고

  • 해당 쿼리들의 성능의 차이에 대한 두 개의 상반된 주장이 펼쳐지고 있기에, 결론을 짓기가 애매하다.
    • 결국 무언가에 대하여 검색할 때, 블로그 글 한 편만 보고 확신을 할 수 없는 이유다.
    • 반드시 크로스 체크가 필요하다.
  • 이럴 때는 결국 경험적인 것이 스스로의 질문에게는 답이 되는 것 같다.
    • 스스로 pgadmin으로 쿼리를 실행해, 시간을 확인한 결과, 큰 차이는 없지만, 대게 부등호를 쓰는 쪽이 빨랐다.
      • 그러나 유의미한 차이 정도는 아닌 걸로 생각이 든다.
        • 같은 쿼리로도 계속 소요 시간이 들쭉날쭉 했기에..
      • 그래서 성능에 대한 욕심이 더 크다면 부등호, 코드 가독성을 챙기고 싶다면 between 을 택하는 것이 맞는 것 같다.
728x90
반응형