Meterialized View(MVIEW) 란?
MVIEW는 말 그대로 VIEW입니다. 하지만 일반 VIEW는 가상으로 존재하는 논리적 테이블이고, MVIEW는 실제 존재하는 TABLE처럼 물리적으로 존재하는 테이블입니다. 데이터가 물리적으로 존재하기 때문에 쿼리 실행 시간의 수행속도를 향상 시킬 수 있습니다. 그리고 SUM, MIN, MAX, AVG, COUNT등 그룹 함수를 미리 계산해 놓을 때 많이 사용하고, INDEX를 사용할 수 있다는 것도 장점이 됩니다.
VIEW와 Materialized View의 차이점
VIEW | Materialized View |
disk에 저장되지 않는 가상 테이블 | 기초 테이블을 물리적으로 복사를 하며 디스크에 저장 |
기초 테이블이 업데이트 될 때마다 VIEW도 업데이트 됨 | 수동으로 업데이트하거나 Trigger를 사용해서 업데이트 해야함 |
조회 처리 속도가 느림(VIEW를 조회 할때마다 계산) | 빠른 처리 속도(미리 계산 되어 물리적으로 저장 했기 때문) |
저장 공간이 필요 없음 | 저장 공간이 필요 |
실무에서 그룹 함수를 사용하여 빠른 처리 속도가 필요 할 때에는 MVIEW를 사용하는 것이 좋을 것 같습니다. 또는 VIEW 컬럼 내에서 INDEX를 사용해서 성능을 올려야한다면 MVIEW를 사용하는 것이 좋겠습니다. (대신 업데이트에 대한 고민이 필요)
- 여러 테이블을 통합(JOIN)
- 일부 행 필터링
- 그룹 함수로 집계할 때
'Database > RDBMS' 카테고리의 다른 글
[PostgreSQL] 읽기 전용 유저 생성 (0) | 2023.04.27 |
---|---|
[PostgreSQL] 중복데이터 삭제 방법(중복데이터 하나만 남기고 제거) (0) | 2023.01.31 |
[PostgreSQL] JSON 컬럼에 특정 값만 추출해서 Index를 걸어보자 (0) | 2022.08.12 |