Postgres에 엄청난 신기능이 출시됩니다

원제 · Postgres Is Releasing An Incredible New Feature

7:452분 읽기Better Stack2026. 08. 06.컴퓨터/소프트웨어 · AI/미래기술

핵심 요약

Postgres 19는 on conflict do select, 네이티브 그래프 쿼리, 내장 repack 등 복잡한 워크플로를 단순화하는 강력한 신기능들을 도입한다.

하이라이트

  • Postgres 19 도입으로 삽입과 조회를 단일 구문으로 처리하는 on conflict do select 기능이 제공된다.

  • Postgres 19의 프로퍼티 그래프 쿼리 기능으로 복잡한 다중 테이블 조인을 단순한 그래프 구문으로 대체할 수 있다.

  • 내장된 repack 기능을 통해 디스크 공간을 운영체제에 반환하면서도 concurrently 키워드로 읽기 및 쓰기 작업을 유지할 수 있다.

  • 새로운 pg_plan_advice 모듈로 쿼리 실행 플랜을 캡처하여 고정할 수 있다.

  • Postgres 19 베타 2는 7월에 출시되었으며 정식 릴리스는 9월에서 10월 사이로 예정되어 있다.

타임라인

  1. Postgres 19 원자적 삽입 및 조회 기능

    기존에는 행의 존재 여부에 따라 삽입과 조회를 분리하여 처리해야 하므로 원자성이 보장되지 않았다. Postgres 19에서는 on conflict do select returning star 구문을 통해 단 한 번의 쿼리로 이 과정을 안전하고 간결하게 처리할 수 있다.

    • 행이 없을 때 삽입하고 결과를 반환받는 기존 방식은 두 개의 쿼리가 필요했다.
    • Postgres 19의 on conflict do select 구문은 단일 쿼리로 이를 원자적으로 수행한다.
    • 동일한 쿼리 내에서 for update 등을 결합하여 수정 작업을 동시에 처리할 수 있다.
  2. 프로퍼티 그래프 쿼리 기능

    쇼핑몰 스키마처럼 고객, 주문, 상품 등이 피벗 테이블로 연결된 구조에서 기존에는 수많은 조인 문을 작성해야 했다. Postgres 19의 그래프 쿼리는 기존 5개의 테이블 구조를 변경하지 않고 뷰처럼 상위에 얹어져 훨씬 직관적인 가독성과 단순한 흐름을 제공한다.

    • 여러 테이블을 거치는 복잡한 조인 체인을 새로운 그래프 구문으로 대체할 수 있다.
    • create property graph 명령어로 정점 테이블과 간선 테이블을 정의하여 관계를 구성한다.
    • 전용 그래프 데이터베이스를 완전히 대체하지는 않지만 SQL 조인의 복잡성을 크게 줄여준다.
  3. 디스크 공간 확보와 repack 기능

    포스트그레스토어의 특성상 행 업데이트 시 이전 버전을 남겨두기 때문에 디스크 공간 낭비가 발생한다. 기존 vacuum full은 테이블을 잠그는 문제가 있었으나, 내장된 repack은 충분한 여유 디스크 공간이 있다면 서비스 중단 없이 안전하게 공간을 확보할 수 있게 돕는다.

    • 기존 vacuum은 죽은 공간을 재사용 가능하다고 표시만 할 뿐 디스크 사용량을 줄이지 못했다.
    • 내장된 repack 기능은 테이블을 새로운 파일로 다시 작성하여 운영체제에 공간을 돌려준다.
    • concurrently 키워드를 함께 사용하면 재작성 중에도 테이블의 읽기와 쓰기 작업이 유지된다.
  4. 기타 주요 신기능 및 출시 일정

    실행 플랜의 변동으로 느려진 쿼리를 고정하는 기능이 추가되었고, vacuum은 이제 여러 워커를 통해 인덱스를 병렬로 정리한다. 또한 copy 키워드를 통해 JSON으로 직접 내보낼 수 있는 기능 등이 포함된 Postgres 19의 정식 릴리스가 임박했다.

    • pg_plan_advice 모듈을 사용하여 빠른 실행 플랜을 캡처하고 고정할 수 있다.
    • JIT 컴파일은 신뢰할 수 없는 비용 산정 문제로 인해 기본적으로 비활성화된다.
    • Postgres 19 베타 2는 7월에 출시되었으며 정식 버전은 9월에서 10월 사이에 출시될 예정이다.

설명

Postgres 19 is close, and it brings native graph queries to the database you already run. Writing five table joins to answer one simple question has been the price of a relational schema for decades. Plus ON CONFLICT DO SELECT, REPACK, and the smaller wins worth knowing before you upgrade. 🔗 Relevant Links https://www.postgresql.org/docs/19/release-19.html ❤️ More about us Radically better observability stack: https://betterstack.com/ Written tutorials: https://betterstack.com/community/ Example projects: https://github.com/BetterStackHQ 📱 Socials Twitter: https://twitter.com/betterstackhq Instagram: https://www.instagram.com/betterstackhq/ TikTok: https://www.tiktok.com/@betterstack LinkedIn: https://www.linkedin.com/company/betterstack 📌 Chapters: 00:00 Intro 00:30 ON CONFLICT DO SELECT 01:38 Native graph queries 02:13 Demo: joins vs. graph syntax 03:32 CREATE PROPERTY GRAPH 04:48 Does this replace Neo4j? 05:10 REPACK and reclaiming disk space 06:09 Quick fire: hints, JIT, vacuum, COPY 07:11 Release timing

커뮤니티 글

모든 글 보기
이 영상에 대해 글쓰기