Unlogged Table
A. UNLOGGED Table 이란?
서버 충돌 후 데이터 일관성 또는 정합성이 문제가 되지 않거나 대용량 데이터 쓰기를 위해 당분간 데이터를
복구할 가능성이 없는 경우에 한해 성능 향상이 필요한 일회용 테이블을 처리하려는 경우, Unlogged Table
이 적합합니다. Unlogged Table은 2011 년 PostgreSQL 9.1에 도입되었으며 v9.5부터 alter 구문을
통하여 Unlogged Table, Logged Table 로 전환 사용이 가능합니다.
WAL (Write-Ahead Logging ) 시스템은 Postgres를 안정적으로 만드는 주요 구성 요소입니다.
WAL 은 이중화 상태일 경우 데이터 동기화에 필요하며 또한, 장애 조치를 위해 복제에 사용하지만
테이블을 작성할 때 테이블을 Unlogged 가 셋팅 된 경우 쓰기는 보조(Stand-by) 서버에 복사되지
않으므로 명심합니다.
B. UNLOGGED Table 기능은 언제 쓸까 ?
ㄱ. 초기 데이터 구성 시 (마이그레이션 및 대용량 ETL 마이그레이션)
ㄴ. 빠른 시간 내에 부분 DR 구성 시 (Cold Copy 제외)
ㄷ. 가져 오는 데 많은 시간이 걸리고 몇 번만 사용되는 임시 대규모 데이터 세트 (금융, 과학 컴퓨팅
및 빅 데이터).
ㄹ. 비정상 종료가 발생할 경우라도 손실되거나 다시 가져올 수 있는 정적 데이터에서 사용 가능
C. 만약 비정상 종료가 발생한다면 ?
테이블은 존재하지만 데이터가 없어지고 초기화 됩니다. 즉 해당 Unlogged 테이블에는 WAL을 작성할
필요가 없으니 트랜젝션 복구를 진행하지 않고 무시합니다.
즉 테이블은 존재하나 데이터 건수가 0입니다.
D. 얼마나 빠르길래 쓰는 걸까?
시스템 사양, 구성, 특성 마다 다르겠지만 상당한 효과를 아래와 같이 확인할 수 있었습니다.
테이블 생성
CREATE UNLOGGED TABLE " "
(
......
);
기존 테이블 변경 시
ALTER TABLE board SET UNLOGGED;
※ 로깅 설정으로 변경 시 : ALTER TABLE board SET LOGGED;
unlogged 테이블 확인
SELECT RELNAME FROM PG_CLASS WHERE RELPERSISTENCE = 'u';
'PostgreSQL' 카테고리의 다른 글
[PostgreSQL] Clustering 란 ? (1) | 2023.04.19 |
---|---|
[PostgreSQL] 단일 사용자 모드 (single mode) 란 ? (0) | 2023.04.19 |
[PostgreSQL] postgres_fdw 설치 & 가이드 (0) | 2023.04.12 |
[PostgreSQL] pg_dump 사용법 & 복구 절차 (0) | 2023.04.03 |
[Postgresql] postgres 15 version 설치 (0) | 2023.04.03 |