refactor: 배포 환경에서 slow-query의 원인이 된 NOT EXIST -> LEFT JOIN 수정

This commit is contained in:
이상진 2025-10-11 12:07:04 +09:00
parent 82f3e56770
commit aa3267c5a8

View File

@ -134,14 +134,14 @@ interface ScheduleRepository : JpaRepository<ScheduleEntity, Long> {
s.id s.id
FROM FROM
schedule s schedule s
LEFT JOIN
reservation r
ON
r.schedule_id = s.id AND r.status IN ('PENDING', 'PAYMENT_IN_PROGRESS')
WHERE WHERE
s.status = 'HOLD' s.status = 'HOLD'
AND s.hold_expired_at <= :now AND s.hold_expired_at <= :now
AND NOT EXISTS ( AND r.id IS NULL
SELECT 1
FROM reservation r
WHERE r.schedule_id = s.id AND (r.status = 'PENDING' OR r.status = 'PAYMENT_IN_PROGRESS')
)
FOR UPDATE SKIP LOCKED FOR UPDATE SKIP LOCKED
""", nativeQuery = true """, nativeQuery = true
) )