핵심 요약
PostgreSQL 19는 2026년 4월 8일 피처 프리즈, 9월 정식 출시 예정. 베타 1은 5월 말, RC1은 7월 중순. 운영 도입은 12월 19.1 패치 이후 권장하지만, 지금부터 스테이징에서 검증할 가치 있는 기능들이 있다.
- Direct I/O (io_uring) GA — 일부 워크로드 30~80% 향상
- UUIDv7 네이티브 — 시간 정렬 가능 PK
- jsonpath 1.1 — 표준 함수 30개 추가
- MERGE RETURNING 지원
- BRIN 멀티 컬럼 GA
1. Direct I/O 활용
리눅스 io_uring 기반 비동기 I/O. PostgreSQL 18에서 도입돼 19에서 GA. 워크로드 종류별 효과 차이 큼.
-- postgresql.conf
io_method = io_uring
io_uring_workers = 8
effective_io_concurrency = 256
shared_buffers = 8GB| 워크로드 | 17 → 19 향상 |
|---|---|
| OLTP TPS (pgbench) | +30% |
| 대용량 sequential read | +80% |
| concurrent UPDATE | +25% |
| backup (pg_basebackup) | +45% |
2. UUIDv7 — PK로 사용
RFC 9562 UUIDv7은 첫 48비트가 Unix timestamp. 시간 정렬되어 PK로 적합 (인덱스 단편화 최소).
-- 함수 사용
SELECT uuidv7();
-- 018f3d77-22a8-7d8c-9a3e-c5f4e8a3d1b2
-- 테이블 정의
CREATE TABLE events (
id UUID PRIMARY KEY DEFAULT uuidv7(),
payload JSONB,
created_at TIMESTAMPTZ DEFAULT NOW()
);실측: BIGSERIAL 대비 INSERT 처리량 동등, 분산 환경에서 ID 생성 충돌 없음, 시간 정렬로 인덱스 효율 95%+ 유지.
3. MERGE RETURNING
UPSERT 결과를 단일 쿼리로 받기.
MERGE INTO accounts a
USING incoming i ON a.id = i.id
WHEN MATCHED THEN
UPDATE SET balance = i.balance
WHEN NOT MATCHED THEN
INSERT (id, balance) VALUES (i.id, i.balance)
RETURNING a.id, a.balance, merge_action();merge_action()은 INSERT·UPDATE·DELETE 중 어느 동작이 일어났는지 반환. 동기화 작업에 핵심.
4. jsonpath 1.1 신규 함수
-- 새 함수: jsonb_path_query_array, jsonb_path_match
SELECT jsonb_path_query_array(
data,
'$.users[*] ? (@.age > 18).name'
) FROM events;JSON 활용 워크로드에서 SQL 코드량 50% 감소 사례 흔함.
5. BRIN 멀티 컬럼
시계열·로그 워크로드에서 BRIN 인덱스가 다중 컬럼에서 정확한 통계 유지. 인덱스 크기 1/100 수준에서 검색 가속.
CREATE INDEX events_brin ON events USING BRIN (created_at, user_id, event_type);6. Logical Replication 충돌 자동 해결
row 충돌 시 슬롯이 멈추던 문제 해결. conflict_resolver 정책 명시 가능.
-- 구독 시
CREATE SUBSCRIPTION sub_orders
CONNECTION '...'
PUBLICATION pub_orders
WITH (conflict_resolver = 'latest_wins');마이그레이션 일정
- 5월 23일: Beta 1 — 스테이징 환경 도입
- 6월: 검증 + 자체 추후 릴리스에서 사용할 새 기능 식별
- 7월 18일: RC1 — 본격 호환성 테스트
- 9월 18일: GA — 일부 신규 환경에 도입
- 12월: 19.1 — 프로덕션 마이그레이션 시작
업그레이드 주의사항
- 13 EOL (2025-11) — 13 → 19 직접 점프 불가, 16/17 경유
- 일부 GUC 제거:
old_snapshot_threshold등 - extension 호환: pg_partman·일부 fdw 패치 필요
- JIT 컴파일러 LLVM 18+ 필수
자주 묻는 질문
지금 운영에 도입 가능?
아직 베타조차 안 나옴 (5월 말 예정). 운영은 12월 19.1 패치 이후가 안전.
Aurora·Cloud SQL은 언제 지원?
관행상 GA 후 4~6개월. 2027년 1~2월 지원 시작 유력.
UUIDv7 vs UUIDv4 vs BIGSERIAL?
분산 + 시간 정렬 필요 → UUIDv7. 단일 DB + 단순함 → BIGSERIAL. 단순 분산 (정렬 불필요) → UUIDv4.

댓글 0