목차
개요
팀 내에서 대규모 데이터에 대해 일정 시간마다 신규 데이터가 인입되는 상황에서 집계 쿼리를 통해 대시보드를 보여주어야 하는 상황일 때, 매 요청마다 집계쿼리를 실행하여 보여주기에는 코스트가 너무 높다고 판단하여 방법을 찾던 중 Materialized View를 사용하기로 결정하였습니다. 이 과정에서 Materialized View라는 내용을 처음 듣게 되어 정리해보았습니다.
Materialized View란?
Materialized View는 데이터베이스에서 사용되는 객체로, 복잡한 쿼리 결과를 저장하고 이를 주기적으로 갱신하여 빠르게 접근할 수 있게 해주는 구조입니다. 기본적으로 View와 비슷하지만, View는 쿼리 결과를 실시간으로 계산해서 반환하는 반면, Materialized View는 결과를 물리적으로 저장해두고 필요할 때 그 데이터를 제공합니다.
특징
1. 쿼리 성능 향상
- Materialized View는 복잡한 계산이 포함된 쿼리의 결과를 저장해두기 때문에, 동일한 쿼리를 다시 실행할 때 물리적인 데이터 저장소에서 바로 데이터를 가져올 수 있어 쿼리 성능이 크게 향상됩니다.
2. 주기적인 갱신
- Materialized View는 저장된 데이터를 주기적으로 갱신할 수 있습니다. 갱신 방법은 전체 갱신(Full Refresh) 방법이 있습니다.
3. 디스크 공간 사용
- Materialized View는 데이터를 저장하는 형태이기 때문에 디스크 공간을 더 사용합니다. 이는 비효율적인 경우가 될 수 있습니다.
4. 실시간 데이터 반영 불가
- Materialized View는 저장된 데이터를 기반으로 작동하기 때문에, View와 달리 실시간 데이터 반영에는 제한이 있습니다. 갱신 주기 내에 변경된 데이터는 반영되지 않기 때문에 주의가 필요합니다.
https://www.alibabacloud.com/blog/598129
https://wiki.postgresql.org/wiki/Incremental_View_Maintenance
'DB' 카테고리의 다른 글
[MariaDB] ELT (랜덤한 값 넣을 때, 사용한 함수) (0) | 2025.01.17 |
---|---|
TDE란? (0) | 2024.11.26 |
DBeaver 설치 및 DB 연동하기 (0) | 2023.11.03 |