[PostgreSQL] PostgreSQL에서 SELECT 컬럼 수가 성능에 미치는 영향

2025. 2. 17. 00:06·개발 (Development)/PostgreSQL

PostgreSQL에서 SELECT 문을 작성할 때 조회하는 컬럼 수가 성능에 영향을 미칠 수 있습니다. 이번 포스팅에서는 컬럼 수가 많을 때 성능에 미치는 영향을 살펴보고, 이를 최적화하는 방법을 소개합니다.

컬럼 수 증가가 성능에 미치는 영향

1. 디스크 I/O 증가

  • 컬럼이 많아질수록 디스크에서 읽어야 할 데이터 양이 증가합니다.
  • 데이터가 캐시에 없다면 디스크 I/O가 증가하여 성능이 저하될 수 있습니다.

2. 네트워크 대역폭 사용 증가

  • 조회 결과가 클수록 클라이언트로 전송되는 데이터도 많아집니다.
  • 네트워크 비용이 증가하며 애플리케이션 응답 시간이 늘어날 수 있습니다.

3. 워크 메모리(Work Memory) 사용 증가

  • 정렬(SORT)이나 해시 조인(HASH JOIN) 시, 컬럼 수가 많으면 더 많은 메모리를 사용합니다.
  • work_mem을 초과하면 디스크에 임시 테이블이 생성되어 성능이 저하됩니다.

4. 인덱스 최적화 방해

  • SELECT *는 인덱스만으로 처리 가능한 쿼리도 테이블 전체 스캔으로 바뀔 수 있습니다.
  • 필요한 컬럼만 조회하지 않으면 인덱스 최적화의 이점을 누릴 수 없습니다.

성능 최적화 방법

  1. 불필요한 컬럼 조회 최소화
    • 필요한 컬럼만 명시적으로 SELECT합니다.
  2. 커버링 인덱스 활용
    • INDEX ONLY SCAN을 통해 인덱스에서 데이터를 바로 가져올 수 있도록 구성합니다.
  3. TOAST 압축 컬럼 주의
    • 길이가 긴 문자열 컬럼은 TOAST 압축을 통해 저장되므로 필요하지 않다면 제외합니다.
  4. 네트워크 전송 최적화
    • 애플리케이션에서 FETCH 크기를 조정하여 네트워크 트래픽을 줄입니다.
반응형

'개발 (Development) > PostgreSQL' 카테고리의 다른 글

[PostgreSQL] WAL(Write-Ahead Logging) 로그 관리 가이드  (0) 2025.02.17
[PostgreSQL] 데이터베이스를 물리적으로 다른 서버에 있는 동일 데이터베이스로 옮기는 방법  (0) 2025.02.17
[PostgreSQL] ASC 인덱스가 있는데 DESC 인덱스를 추가해도 될까?  (0) 2025.02.16
[PostgreSQL] 쿼리 성능 최적화 과정  (0) 2025.02.16
[PostgreSQL] 특정 데이터베이스에 접속하기  (1) 2025.02.16
'개발 (Development)/PostgreSQL' 카테고리의 다른 글
  • [PostgreSQL] WAL(Write-Ahead Logging) 로그 관리 가이드
  • [PostgreSQL] 데이터베이스를 물리적으로 다른 서버에 있는 동일 데이터베이스로 옮기는 방법
  • [PostgreSQL] ASC 인덱스가 있는데 DESC 인덱스를 추가해도 될까?
  • [PostgreSQL] 쿼리 성능 최적화 과정
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (238)
      • 개발 (Development) (171)
        • Algorithm (1)
        • Angular (1)
        • AWS (7)
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (36)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (38)
        • Python (34)
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (12)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    python
    PostgreSQL
    DevOps
    deepseek
    JSON
    오답노트
    ADsP
    Kafka
    pandas
    timescaledb
    리눅스 마스터 2급
    java
    리눅스 마스터 2급 2차
    파이썬
    JPA
    Linux
    백준온라인저지
    MyBatis
    Linux master
    Vue.js
    데이터분석
    javascript
    자바
    백준자바
    백준알고리즘
    백준
    springboot
    AWS
    Kubernetes
    docker
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[PostgreSQL] PostgreSQL에서 SELECT 컬럼 수가 성능에 미치는 영향
상단으로

티스토리툴바