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 |