[Database] Materialized View

Sangwoo Park·2024년 5월 15일
0

View는 데이터를 저장하지 않지만 액세스할 때마다 기본 테이블에서 동적으로 결과를 생성하여 최신 데이터를 보장하지만 복잡한 쿼리의 경우 성능이 저하될 수 있는 가상 테이블입니다. 이와 대조적으로 Materialized View는 SQL 쿼리 결과를 물리적으로 저장하므로 데이터를 최신 상태로 유지하기 위해 정기적인 업데이트가 필요하고 추가 저장 공간을 소비하는 대신 더 빠른 데이터 액세스를 제공하여 쿼리 성능을 향상시킵니다. 둘 사이의 선택은 데이터 최신성, 시스템 성능 및 리소스 관리에 대한 특정 요구 사항에 따라 달라집니다.

1. 저장 및 실행

View
기본적으로 가상 테이블입니다. 데이터를 물리적으로 저장하는 것이 아니라 SQL 쿼리를 정의로 저장합니다. View가 쿼리되면 데이터베이스는 매번 데이터베이스의 실제 테이블에 대해 기본 SQL 쿼리를 실행합니다. 즉, View는 항상 최신 데이터를 표시하지만 액세스할 때마다 쿼리를 처음부터 계산해야 합니다.

Materialized View
SQL 쿼리의 결과를 데이터베이스에 물리적으로 저장합니다. 이 저장은 Materialized View가 생성되거나 새로 고쳐질 때 발생합니다. 결과가 미리 계산되어 저장되므로 Materialized View에서 데이터에 액세스하는 것이 View에서보다 훨씬 빠릅니다. 특히 복잡한 쿼리의 경우 더욱 그렇습니다.

2. 성능 및 효율성

View
표시되는 데이터가 항상 최신인지 확인하지만, 계산 비용이 많이 들거나 큰 데이터 세트가 포함된 쿼리의 경우에는 보기에 액세스할 때마다 이러한 작업을 수행해야 하므로 효율성이 떨어질 수 있습니다.

Materialized View
읽기 작업에 더 나은 성능을 제공하며 기본 데이터가 자주 변경되지 않지만 빠르고 자주 액세스해야 하는 경우 유용합니다. 따라서 응답 시간이 중요한 보고서, 대시보드 및 데이터 분석 애플리케이션에 이상적입니다.

3. 데이터 최신성 및 유지 관리

View
기본 데이터의 현재 상태를 실시간으로 반영하므로 항상 최신 상태입니다. 기본 테이블을 유지 관리하는 것 이상으로 데이터를 최신 상태로 유지하는 측면에서 유지 관리가 필요하지 않습니다.

Materialized View
데이터의 정확성을 유지하려면 정기적인 업데이트 또는 새로 고침이 필요합니다. 새로 고침 전략은 일정에 따라(예: 야간) 발생하거나 특정 이벤트(예: 기본 테이블 업데이트)에 의해 트리거되도록 설정할 수 있습니다. 이러한 유지 관리에는 데이터 최신 상태와 시스템 성능 및 리소스 사용량의 균형을 맞추기 위한 세심한 관리가 필요합니다.

요약

전반적으로 View 또는 Materialized View 사용 간의 선택은 데이터 최신성, 쿼리 성능 및 시스템 리소스 관리에 대한 특정 요구 사항에 따라 달라집니다. 각각은 서로 다른 목적으로 사용되며 다양한 조건에서 이점을 제공합니다.

profile
going up

0개의 댓글