빈쿵바라기
좌충우돌 개발자의 기록
빈쿵바라기
전체 방문자
오늘
어제
  • 분류 전체보기 (53)
    • Programming (25)
      • JAVA (12)
      • Spring Boot (6)
      • JPA (7)
      • Python (0)
    • Database (12)
      • RDBMS (4)
      • NoSQL (7)
    • Server (11)
    • Elasticsearch (3)
    • ETC (2)

블로그 메뉴

    공지사항

    인기 글

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    빈쿵바라기

    좌충우돌 개발자의 기록

    Database/RDBMS

    [PostgreSQL] VIEW vs MVIEW(Materialized View)

    2022. 8. 19. 12:31

    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
      'Database/RDBMS' 카테고리의 다른 글
      • [PostgreSQL] 읽기 전용 유저 생성
      • [PostgreSQL] 중복데이터 삭제 방법(중복데이터 하나만 남기고 제거)
      • [PostgreSQL] JSON 컬럼에 특정 값만 추출해서 Index를 걸어보자
      빈쿵바라기
      빈쿵바라기
      삽질하는 개발자의 좌충우돌 개발기

      티스토리툴바