개발

MySQL | Query execution was interrupted

AM0530 2021. 5. 20. 18:11

1. 오류 : java.sql.SQLException:Query execution was interrupted

 

2. 오류원인 : mysql 인덱스가 꺼져있어서 

쿼리하나의 실행시간이 20~30초가 걸렸고 그래서 timeout으로 해당 오류가 발생했다.

 

(오류 찾아낸 방법)

MySQL워크밴치에서 쿼리 입력 후 해당 아이콘을 클릭해서 쿼리를 실행하면 

쿼리 실행내역을 자세히볼 수 있다.

쿼리 실행 단계를 살펴봤을때 하나의 조건에서 119975줄을 모두 탐색했다.

정상실행하는 경우 인덱스로 80줄만 탐색한다.

 

3. 해결방법 : 

3-1. 테이블 인덱스 상태 확인

SHOW INDEX FROM (테이블명);

여기서 

Comment 에 disabled 되어있으면  인덱스가 꺼져있는 상태이다. 

 

3-2.  인덱스 사용으로 변경 

ALTER table (테이블명) enable keys;