패스잇
백엔드 개발 · 중급

EXPLAIN 명령어를 사용한 쿼리 실행 계획 분석 방법에 대해 설명해주세요.

힌트 · 인덱스 사용 여부, 조인 방식, 예상 비용을 확인하는 방법을 설명해보세요.

실행 계획쿼리 옵티마이저비용인덱스조인

모범답안

"EXPLAIN 명령어는 쿼리 실행 계획을 보여줘서 쿼리 성능을 분석하고 개선하는 데 아주 유용합니다. 실행 계획을 통해 쿼리 옵티마이저가 어떻게 쿼리를 처리할지 예상되는 단계를 확인할 수 있습니다.

주로 확인하는 것은 다음과 같습니다. 첫째, 인덱스 사용 여부입니다. 인덱스를 사용하는지, 어떤 인덱스를 사용하는지 확인하여 불필요한 Full Table Scan을 줄일 수 있는지 파악합니다. 둘째, 조인 방식입니다. Nested Loop Join, Hash Join 등 어떤 조인 방식을 사용하는지 보고, 더 효율적인 방식으로 변경할 수 있는지 검토합니다. 셋째, 예상 비용입니다. 쿼리 실행에 필요한 예상 비용을 확인하여 어떤 부분이 가장 많은 비용을 차지하는지 파악하고, 해당 부분을 집중적으로 개선합니다.

예를 들어 EXPLAIN SELECT * FROM users WHERE id = 1; 명령어를 실행하면, id 컬럼에 인덱스가 있는지, 있다면 해당 인덱스를 사용하는지 등을 확인할 수 있습니다. 실행 계획을 분석하여 쿼리 성능을 개선하는 데 활용할 수 있습니다."

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 데이터베이스 면접 질문

← 데이터베이스 면접 질문 전체 보기