DBMS/PostgreSQL

[PostgreSQL] MATERIALIZED VIEW(구체화 된 뷰) 생성, 갱신, 삭제 하기

썸머워즈 2021. 7. 6. 21:10
반응형

MATERIALIZED VIEW 라는 구체화된 뷰가 존재한다.

이것은 VIEW라고 이름이 붙었음에도 VIEW처럼 가상테이블이 아니라 TABLE 처럼 실제 존재한다.

 

뭔가 자주쓰이는 것 같지는 않고 생소하지만 상황에따라 얼마든지 사용가능한 것으로 보인다.


▷ MATERIALIZED VIEW 생성 구문

CREATE MATERIALIZED VIEW table_name
[ (column_name [, ...] ) ]
[ WITH ( storage_parameter [= value] [, ... ] ) ]
[ TABLESPACE tablespace_name ]
AS query
[ WITH [ NO ] DATA ]

참고 : https://www.postgresql.org/docs/9.3/sql-creatematerializedview.html

 

CREATE TABLE AS 구문과 비슷하다.


구체화된 뷰가 일반 TABLE과 다른 점은 데이터의 새로고침이 가능하다는 점이다.

 

▷ MATERIALIZED VIEW 데이터 갱신 구문

REFRESH MATERIALIZED VIEW table_name

추가적으로 그냥 REFRESH를 하게되면 PostgreSQL이 전체 테이블을 잠근다고 한다. 그래서 데이터를 쿼리할 수 없는 경우가 생기는데 이를 방지하기 위해 CONCURRENTLY 옵션 사용이 가능하다.

REFRESH MATERIALIZED VIEW CONCURRENTLY table_name

갱신하는데 그리 오래걸리지 않으면 굳이 사용할 필요는 없을것같다.(이 옵션은 버전에 영향을 받는다. 확인하고 쓰자)


▷ MATERIALIZED VIEW 데이터 삭제 구문

DROP MATERIALIZED VIEW table_name

참고 : https://www.postgresqltutorial.com/postgresql-materialized-views/

반응형