マテリアライズドビュー(Materialized View)は、複雑なクエリ結果を物理的なテーブルとしてデータベース上に保存する機能です。通常のビューとは異なり実データを持つため、集計や結合の頻度が高い大量データの参照処理を大幅に高速化できます。データは「リフレッシュ」により最新に保つ必要があります。
マテリアライズドビューの要点
- 高速な参照: 事前に計算・キャッシュされたデータを利用するため、クエリのレスポンスが向上します。
- 実体化されたテーブル: ビューがデータを保存しているため、インデックス(索引)を作成でき、高速化がさらに促進されます。
- リフレッシュの必要性: ベーステーブルの更新時に、マテリアライズドビューのデータを手動または自動で更新(リフレッシュ)する必要があります。
- ストレージ消費: データを物理的に保存するため、通常のビューよりもディスク容量を消費します。
主な用途(ユースケース)
- データウェアハウス(DW)の集計: 売上データの集計や、地域別・期間別のデータ分析など、計算コストが高い処理の高速化。
- 複雑な結合: 複数の大規模テーブルをJOIN(結合)した結果をキャッシュし、頻繁な照会に対応する場合。
- レプリケーション: リモートサイトへのデータコピーなど、通信量の削減と高速アクセス。
通常のビューとの違い
| 特徴 | 通常のビュー (View) | マテリアライズドビュー |
|---|---|---|
| データの実体 | なし(定義のみ) | あり(キャッシュされる) |
| 参照時の動作 | ベーステーブルを毎回検索 | 保存された結果を返す |
| 参照速度 | ベーステーブル依存 | 高速 |
| データ最新性 | 常に最新 | リフレッシュ間隔に依存 |
主なリフレッシュ方法
- 完全リフレッシュ: マテリアライズドビュー内のデータを全削除し、再作成する。
- 高速リフレッシュ: 更新された差分のみを反映する。
Oracle, PostgreSQL, AWS, Snowflake, BigQuery などの多くのデータベースやクラウドサービスでサポートされています。

コメント