개념 사전 · 프로그램

PostgreSQL

포스트그레스큐엘 · Postgres

은 ·제약·과 확장 기능을 제공하는 관계형 DBMS이다. MVCC로 동시 질의의 가시성을 관리하고 WAL 선행 기록으로 장애 뒤 데이터 페이지를 복구하는 기반을 마련한다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

로고: PostgreSQL Global Development Group 공식 자료. 제품 식별을 위해 표시하며 각 상표의 권리는 권리자에게 있습니다.

01무엇이고, 어떤 일을 하나

  • 관계형 자료와 제약을 관리하며 요청을 실행한다.
  • 스냅샷··잠금으로 동시 읽기와 쓰기를 조정한다.
  • WAL과 기본 백업을 연결해 충돌 복구·시점 복구를 지원한다.

02어떤 순서로 동작하나

  1. 세션과 문장 준비

    접속을 인증하고 구문·객체·자료형·권한을 해석한다.

  2. 계획 선택

    통계와 인덱스 등으로 실행 계획을 선택한다.

  3. 스냅샷 기반 실행

    지정 격리 수준에서 보이는 을 읽고 쓰기 충돌·잠금 조건을 처리한다.

  4. 변경 보존

    커밋과 WAL 저장 정책에 따라 변경을 확정하며 데이터 페이지 기록과 복구 로그의 순서를 관리한다.

03먼저 알아둘 용어와 구성요소

갱신 중인 행에는 이전 상태와 새 상태를 구별할 정보가 있다. SELECT는 자기 스냅샷에서 보이는 버전을 읽으며, 다른 세션의 미커밋 변경을 그대로 읽지 않는다.
Read Committed의 보통 SELECT는 각 명령 시작 시점까지 커밋된 자료를 본다. 같은 에서 연속한 두 SELECT도 그 사이 다른 세션이 커밋하면 다른 결과를 얻을 수 있다.
UPDATE가 다른 이 변경 중인 행을 만나면 결과를 기다릴 수 있다. 상대가 커밋하면 최신 행에 WHERE 조건을 다시 적용하여 변경 대상을 결정한다.
cost=0.30..8.00의 값은 계획 비교용 비용 단위이며 밀리초가 아니다. actual time은 실행 측정치이므로 두 숫자를 바로 빼서 오차를 계산하지 않는다.
가상 노드가 actual time=0.010..0.040 rows=2 =100이면 한 번당 평균 2행을 내보냈고 전체 출력은 약 200행이다. 노드 시간도 반복 횟수를 고려한다.
데이터 페이지의 변경 내용을 디스크에 내보내기 전에 그 변경을 재구성할 WAL 기록을 먼저 안전하게 저장한다. 페이지를 즉시 모두 쓰지 않아도 충돌 복구가 가능한 근거다.

04예제로 따라가기

  • EXPLAIN의 cost=0.30..8.00은 계획 비교용 비용으로 밀리초가 아니다.
  • 가상 노드의 rows=2 =100이면 전체 출력 행 수는 약 200행으로 해석하지만 노드 시간 합산에는 상하위 포함 관계를 고려한다.
  • 에서 잘못된 DELETE 직전 시각에 멈추면 그 이후 정상 변경도 자동 보존되지 않는다. 필요한 업무 복구 범위를 별도로 판단한다.

05혼동하기 쉬운 점과 확인 기준

  • 상위 노드의 시간에는 하위 작업이 포함될 수 있다. 모든 노드의 시간을 단순 합산하면 같은 일을 중복 계산한다.
  • EXPLAIN ANALYZE는 실제 실행한다. 변경 질의나 부작용이 있는 함수는 단순 조회 점검으로 취급하지 않으며, 여기의 출력은 실행하지 않은 해석 예시다.
  • 의 Read Committed를 기준으로 한다. 다른 DBMS나 격리 수준에 이 규칙을 그대로 적용하지 않는다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

READ · OBSERVE · CONNECT

함께 보는 학습 자료

아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.

공식 가이드

PostgreSQL 격리 수준과 경쟁 UPDATE 추적

13.2.1 Read Committed의 두 세션 UPDATE 설명부터 읽고 13.2.2와 비교한다. 현재 사이트의 재고 차감 예제에 대기·재평가·재시도 조건을 대입할 수 있다.

읽으면서 확인할 것
  • 보통 SELECT가 문장 시작 시점의 스냅샷을 쓰는 조건
  • 경쟁 UPDATE 커밋 뒤 WHERE를 다시 검사하는 이유
  • Repeatable Read에서 전체 재시도가 필요한 경우

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.