PostgreSQL 쿼리 처리 전체 흐름

1. 클라이언트 → PostgreSQL 서버 접속


2. 백엔드 프로세스가 쿼리 처리 (사용자마다 1:1 대응)

각 클라이언트 요청은 해당하는 백엔드 프로세스가 담당합니다.

처리 순서:

  1. Parser

    SQL 문장을 파싱하여 구문 트리(parse tree)로 변환.

  2. Analyzer / Rewriter

    의미 분석 및 Rule 시스템 적용 (View 등 변형 포함).

  3. Planner / Optimizer

    비용 기반 계획 수립. 여러 실행계획 중 최적의 계획 선택.

  4. Executor

    실제로 실행하면서 데이터를 읽고 연산함.

    ⇒ 디스크 I/O는 Executor 단계에서 발생


디스크 I/O 발생 시점과 관련 프로세스

PostgreSQL은 디스크 I/O를 최소화하기 위해 Buffer Pool (Shared Buffers)를 사용.

그러나 버퍼에 없는 데이터를 읽어야 할 때는 디스크 I/O가 발생함.

I/O 발생 상황 1: 테이블 데이터 읽기 (SELECT)