패스잇
시스템 설계 · 중급

뷰(View)와 물질화된 뷰(Materialized View)의 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 적절한가요? 특히 물질화된 뷰가 대용량 데이터 환경에서 쿼리 성능 최적화에 어떻게 기여할 수 있는지 설명해 주세요.

힌트 · 뷰는 실제 데이터를 저장하지 않고 쿼리 시점에 결과를 생성하지만, 물질화된 뷰는 쿼리 결과를 미리 저장합니다. 물질화된 뷰는 복잡하고 시간이 오래 걸리는 쿼리의 성능을 향상시키는 데 유용합니다.

실시간성데이터_정합성쿼리_최적화데이터_웨어하우징인덱싱

모범답안

뷰와 물질화된 뷰는 모두 데이터베이스에서 쿼리 결과를 저장하는 객체이지만, 중요한 차이점이 있습니다. 뷰는 가상 테이블과 같아서 실제 데이터를 저장하지 않고, 쿼리 시점에 정의된 쿼리를 실행하여 결과를 보여줍니다. 반면, 물질화된 뷰는 쿼리 결과를 미리 저장해두기 때문에, 필요할 때마다 쿼리를 다시 실행할 필요가 없습니다.

어떤 상황에서 사용하는 것이 적절한가에 대해 말씀드리면, 뷰는 실시간 데이터가 필요하고 데이터 변경이 잦은 경우에 유용합니다. 반면, 물질화된 뷰는 데이터 변경 빈도가 낮고, 복잡한 연산이나 조인이 필요한 쿼리의 성능을 향상시켜야 할 때 효과적입니다.

특히 대용량 데이터 환경에서 물질화된 뷰는 쿼리 성능 최적화에 크게 기여할 수 있습니다. 예를 들어, 데이터 웨어하우징 환경에서 자주 사용되는 집계 쿼리의 결과를 물질화된 뷰로 저장해두면, 쿼리 실행 시간을 단축하고 시스템 부하를 줄일 수 있습니다. 또한, 물질화된 뷰에 인덱스를 추가하면 쿼리 성능을 더욱 향상시킬 수 있습니다. 다만, 물질화된 뷰는 데이터를 저장하기 때문에 저장 공간이 필요하고, 데이터 정합성을 유지하기 위한 추가적인 관리가 필요하다는 점을 고려해야 합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 데이터베이스 설계 면접 질문

← 데이터베이스 설계 면접 질문 전체 보기