1. SQL and developer-related features

  1) 문서에 그림설명 추가

  2) psql에서 help 사용시 참조 URL 표시

     psql> \h SHOW

     ~~~~

     URL: https://www.postgresql.org/docs/12/sql-show.html 

  3) output를 csv로 출력 (외부환경 설정 : .psqlrc)

     psql> \pset format csv

          > select id from generate_series(1,4) ;   

  4) rebuild index concurrently

     psql> \h reindex

          > reindex index concurrently test_index  (참고, create index concurrently)

  5) compution 계산열 저장

     CREATE TABLE t_measurement (
          tm timestamp,
          kg numeric,
          g  numeric GENERATED ALWAYS AS (kg * 1000) STORED
     );

     g은 항상 kg에 1000 곱해서 저장

    INSERT INTO t_measurement (tm, kg) VALUES (now(), 1) RETURNING *;

  6) improving enum 

    CREATE TYPE currency AS ENUM ('USD', 'EUR', 'GBP');

    ALTER TYPE currency ADD VALUE 'CHF' AFTER 'EUR';

  7) JSONPATH 사용

    12에서 json 지원하며 아래는 json 컬럼이 있는지 컬럼이 맞는지 체크

    SELECT jsonb_path_exists('{"a": 1}', '$.a');

    SELECT jsonb_path_match('{"a": 1}', '$.a == 1');

 

2. Backup, recovery, and replication

   replication설정이 recovery.conf 파일이 아니라 postgresql.conf 파일로 합쳐짐

 

3. Performance-related 사항

   1) CTE ( common table expressions )

      12 이전 버전과는 cte는 inline형태로 포함되었으며, 더 정확하고 가독성 좋게 변경 

      explain WITH x AS (SELECT * FROM generate_series(1, 5) AS id) SELECT * FROM x;

      -----------------------------------------------------------------------
      Function Scan on generate_series id (cost=0.00..0.05 rows=5 width=4) 

   2) Partition 속도 개성

      psql> SELECT 'CREATE TABLE part_' || id || ' PARTITION OF part
              FOR VALUES FROM (' || id || ') TO (' || id + 1 || ')'  
              FROM generate_series(1, 100) AS id;

            >gexec    (위에 쿼리를 수행하여 파티션 생성)

 

             explain analyze SELECT * FROM part WHERE id = 545;
             => 11g보다 planning time 대략 100배 정도 개선

   3) index 생성 스페이스 개선

      GiST, GIN, SP-GiST index 생성시 빨라지고 WAL 공간 사용이 줄어듬

 

4. New storage-related 특징

   pluggable storage engines를 지원하여 OLAP등 서비스별 특징에 따라 구성가능

 

 

'RDB > PostreSQL' 카테고리의 다른 글

PostgreSQL 12 lock  (0) 2020.04.27
PostgreSQL 12 transactions  (0) 2020.04.22
PostgreSQL 함수  (0) 2020.03.23
PostgreSQL 병렬 쿼리  (0) 2020.03.23
PostgreSQL 파티션  (0) 2020.03.23

+ Recent posts