- 원인
분포도에 따라 실행계획이 변하는 현상 발생
user 의 개수가 단일이 아닌 복수개의 경우 reg_date 기준으로 실행계획 생성
- 쿼리
select
ifnull(acb.score, 0)
from
tb_abc_log abc
where
abc.user = #user
and user.reg_date > DATE_SUB(NOW(), INTERVAL 1 DAY)
order by
user.reg_date desc
limit 1
- 해결방법
- 인덱스 힌트로 실행계획 고정
USE_INDEX(ix_abc_log_user)
select
ifnull(acb.score, 0)
from
tb_abc_log abc USE_INDEX(ix_abc_log_user)
where
abc.user = #user
and user.reg_date > DATE_SUB(NOW(), INTERVAL 1 DAY)
order by
user.reg_date desc
limit 1
'MySQL (Aurora) > DB Tuning' 카테고리의 다른 글
mysql 실행계획 시 유의점 (0) | 2024.12.03 |
---|---|
형 변환 튜닝 (2) | 2024.10.02 |