들어가며
PostgreSQL은 강력한 오픈소스 데이터베이스이지만, 기본 설정만으로는 최적의 성능을 낼 수 없습니다. 이 글에서는 실제 운영 서버에서 검증한 성능 튜닝 방법을 공유합니다.
1. shared_buffers 설정
PostgreSQL이 사용하는 공유 메모리 버퍼입니다. 일반적으로 전체 시스템 메모리의 25%를 권장합니다.
shared_buffers = 28GB # 112GB RAM 기준2. work_mem 설정
정렬, 해시 조인 등에 사용되는 메모리입니다. 너무 크게 설정하면 동시 쿼리가 많을 때 메모리 부족이 발생할 수 있습니다.
work_mem = 256MB3. 인덱스 전략
자주 조회되는 컬럼에 적절한 인덱스를 생성하는 것이 핵심입니다. B-Tree, GIN, GiST 등 인덱스 타입을 상황에 맞게 선택해야 합니다.
복합 인덱스
WHERE 절에 자주 함께 사용되는 컬럼은 복합 인덱스로 묶으면 효과적입니다.
CREATE INDEX idx_posts_type_created ON posts(type, created_at DESC);4. EXPLAIN ANALYZE 활용
쿼리 성능을 분석할 때는 반드시 EXPLAIN ANALYZE를 사용하세요. 실제 실행 시간과 처리 행 수를 확인할 수 있습니다.
마치며
성능 튜닝은 한 번에 끝나지 않습니다. 지속적인 모니터링과 개선이 필요합니다.
댓글 0