AOS
주식회사 에오스모바일
← 개발자 노트
Web · · 조회 12

PostgreSQL B-Tree 인덱스 스캔 원리와 Slow Query 개선을 위한 실행 계획(EXPLAIN) 분석

웹 서비스 운영 중 유저 증가로 인해 느려진 데이터베이스 쿼리를 찾아내고, 복합 인덱스 및 인덱스 스캔을 유도하여 조회 속도를 개선하는 실무 사례입니다.

데이터베이스 성능 최적화의 첫 단추는 올바른 인덱스 설계입니다. 데이터가 수백만 건 쌓인 테이블에서 조건절에 자주 사용되는 컬럼에 인덱스가 없다면 전체 테이블 스캔이 발생해 시스템 자원을 고갈시킵니다. 이 글에서는 PostgreSQL의 EXPLAIN ANALYZE 명령어를 사용하여 데이터베이스 내부 엔진이 쿼리를 실행하는 단계를 분석하는 방법을 배웁니다. 조건절의 순서와 컬럼 카디널리티를 고려해 다중 컬럼 인덱스를 생성하는 방법과 인덱스를 만들었음에도 인덱스 스캔이 적용되지 않는 대표적인 안티 패턴을 해결하는 쿼리 리팩토링 과정을 공유합니다.