알고리즘 & 문제 해결 패턴/Java & SQL 면접 질문

[Java & SQL 면접 질문] SQL 성능 최적화 관련 면접 질문과 답변 정리

Jinsapp 2025. 3. 17. 21:47

[SQL] SQL 성능 최적화 관련 면접 질문과 답변 정리

1. SQL 성능 최적화란?

SQL 성능 최적화는 데이터베이스의

**조회 속도를 높이고, 부하를 줄이는 기술**을 의미합니다.

인덱스 활용, 조인 최적화, 실행 계획 분석 등이 핵심 개념으로 다뤄집니다.

2. SQL 성능 최적화 면접 질문

질문 예상 답변
1. 인덱스(INDEX)란 무엇이며, 언제 사용해야 하나요? 인덱스는 **검색 성능을 향상시키는 데이터 구조**입니다.
WHERE 절에서 자주 사용되는 컬럼이나 JOIN 시 매칭되는 컬럼에 적용하면 성능이 개선됩니다.
하지만 **INSERT, UPDATE, DELETE 성능이 저하될 수 있으므로
적절한 컬럼에만 적용**해야 합니다.
2. 인덱스가 효율적이지 않은 경우는? - 데이터가 자주 변경되는 컬럼 (예: 로그 테이블)
- SELECT 문에서 **함수(예: UPPER(name))를 적용하면 인덱스를 사용하지 못함**
- 작은 테이블(테이블 크기가 작다면 전체 스캔이 더 빠를 수도 있음)
3. SQL 실행 계획(EXPLAIN PLAN)이란? 실행 계획은 **SQL이 어떻게 실행될지 예측하는 계획**입니다.
이를 통해 INDEX가 사용되는지, FULL SCAN이 발생하는지 등을 분석할 수 있습니다.
4. 조인(JOIN) 성능을 최적화하는 방법은? - **인덱스 적용:** JOIN에 사용되는 컬럼에 INDEX 추가
- **드라이빙 테이블 설정:** 작은 테이블을 먼저 조회하여 불필요한 데이터를 줄임
- **필요한 컬럼만 조회:** SELECT * 대신 필요한 컬럼만 조회
5. 뷰(VIEW)와 머티리얼라이즈드 뷰(MATERIALIZED VIEW)의 차이? - VIEW는 **실시간 데이터 조회**,
MATERIALIZED VIEW는 **쿼리 결과를 저장하여 성능 최적화**
- MATERIALIZED VIEW는 주기적으로 **REFRESH 필요**
6. 트랜잭션(TRANSACTION)이란? 트랜잭션은 **데이터베이스에서 하나의 작업 단위로 실행되는 명령어 그룹**입니다.
트랜잭션은 **ACID (Atomicity, Consistency, Isolation, Durability)** 원칙을 따릅니다.
7. 트랜잭션 격리 수준(TRANSACTION ISOLATION LEVEL)이란? 트랜잭션 간의 **동시성 문제를 해결하기 위한 설정**입니다.
대표적인 격리 수준:
- **READ UNCOMMITTED:** 변경 중인 데이터 읽기 가능 → Dirty Read 발생
- **READ COMMITTED:** COMMIT된 데이터만 읽기 가능
- **REPEATABLE READ:** 트랜잭션이 시작될 때 읽은 데이터는 변경되지 않음
- **SERIALIZABLE:** 가장 엄격한 격리 수준, 동시성을 최소화
8. Deadlock(교착 상태)이란? 두 개 이상의 트랜잭션이 서로 상대방의 자원을 기다리면서 영원히 종료되지 않는 상태입니다. 해결 방법: - 트랜잭션 수행 순서를 일관되게 유지 - 타임아웃 설정
9. 파티셔닝(PARTITIONING)이란? 큰 테이블을 논리적으로 여러 개의 작은 테이블로 나누는 기술입니다.
**쿼리 성능을 최적화**하고, **데이터 관리가 용이**해집니다.
10. 데이터 정규화와 비정규화(Normalization vs Denormalization)란? - **정규화:** 데이터 중복을 최소화하고, 무결성을 유지하기 위해 테이블을 분할
- **비정규화:** 성능 최적화를 위해 일부 데이터 중복을 허용하여 조회 속도를 높임

📌 정리

  • ✔ **SQL 성능 최적화 면접에서는 인덱스, 조인 최적화, 실행 계획, 트랜잭션 개념이 자주 출제됨**
  • ✔ **뷰와 머티리얼라이즈드 뷰, 파티셔닝 개념도 중요**
  • ✔ **트랜잭션 격리 수준과 교착 상태 해결 방법 숙지 필요**

🔗 다른 SQL 면접 질문도 함께 확인해보세요!

Java & SQL 면접 대비: 데이터베이스 개념과 성능 튜닝 전략