DBAtlas · 데이터베이스 운영 아틀라스

3024: Query execution was interrupted, maximum statement execution time exceeded (쿼리 실행이 중단됨. 최대 문장 실행 시간 초과)

MySQL

의미

SELECT 쿼리가 정의된 최대 실행 시간(max_execution_time / MAX_EXECUTION_TIME 힌트)을 초과해 MySQL이 중단했다. 장시간 실행 쿼리가 리소스를 점유하지 않도록 하는 타임아웃 안전장치다.

원인

쿼리가 세션/전역 max_execution_time 값이나 SELECT의 MAX_EXECUTION_TIME(N) 옵티마이저 힌트보다 오래 실행되었다. 보통 비효율적인 실행 계획, 누락된 인덱스, 대규모 스캔, 높은 동시성에서의 지연이 원인이다. (읽기 전용 SELECT에만 적용된다.)

해결 방법

EXPLAIN으로 쿼리를 분석하고 최적화한다(적절한 인덱스, 더 선택적인 조건, full table scan 감소). 쿼리가 정당하게 오래 실행되어야 한다면 해당 SELECT의 MAX_EXECUTION_TIME 힌트나 세션 max_execution_time을 늘린다. 무거운 분석 쿼리는 오프라인/replica에서 실행한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목