쿼리 튜닝

JOIN+Range Scan 충돌 문제

gw1 2025. 10. 21. 19:14

SELECT bc.code, count(*)
FROM board_code as bc LEFT JOIN board as b
ON bc.code = b.code AND b.created_at like '2025-10-21%'
where bc.display = 'Y'
group by bc.code

-- board_code는 게시판 code 종류만 모아둔 테이블
(ex. NOTICE, REVIEW, QNA ..)
-- board는 게시판, 게시글마다 게시판 종류 code 존재 
-- 예시 결과(10월 21일만 집계)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡ
NOTICE | 12
REVIEW | 123
QNA    | 43
ㅡㅡㅡㅡㅡㅡㅡㅡ

이 쿼리가 느린 이유를 설명하세요.

그리고 개선하세요.

idx_code = (code) 입니다.
(code, created_at) 인덱스가 쓰여도
created_at으로 범위를 좁히지 못하고
code = ? 조건만 활용되는 상황

'쿼리 튜닝' 카테고리의 다른 글

휴먼 회원 조회 문제  (0) 2025.12.12
distinct한 값을 빠르게 뽑기 문제  (2) 2025.11.30
OOM(Out of Memeory) 문제  (5) 2025.10.05
2차 정렬로 인한 문제  (0) 2025.09.27
최근 접속자 목록 조회 문제  (0) 2025.08.20