쿼리 실행 계획은 데이터베이스가 질의를 처리하기 위해 선택한 스캔·조인·정렬 등의 연산 구조이다.
원리
EXPLAIN으로 추정 계획을 확인한다. 추정 행 수와 비용은 통계와 모형에 기반하며 실제 경과 시간과 같은 단위라고 가정하지 않는다.
SQL |
|---|
SQL SELECT · SQL JOIN · SQL GROUP BY · SQL HAVING · SQL 공통 테이블 식 |
예시
전체 스캔 대신 인덱스 스캔을 선택했는지, 조인 전에 행이 얼마나 줄어드는지 살피면 느린 질의의 원인을 좁힐 수 있다.
데이터베이스 내부 |
|---|
WAL · 체크포인트 · MVCC · 트랜잭션 격리 수준 · 읽기 커밋 |
데이터베이스 교착 상태 · 비관적 잠금 · 파티셔닝 · 시점 복구 · 데이터베이스 백업 |
주의할 점
PostgreSQL의 EXPLAIN ANALYZE는 실제로 문장을 실행한다. 변경 문장에는 실제 부작용이 생길 수 있으므로 조회 전용 분석과 구분하고 안전한 환경에서 확인한다.