반응형
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/
반응형
댓글