マテリアライズドビューとは?
まてりあらいずどびゅー
マテリアライズドビューとは、データベースにおいてクエリの結果を実体(テーブル)として事前に保存し、高速なデータ参照を実現する仕組みです。
マテリアライズドビュー(Materialized View)は、リレーショナルデータベースにおける仕組みの一つで、SELECT文の実行結果をディスク上に物理的なデータとして保存したオブジェクトです。通常のビュー(仮想テーブル)がアクセスのたびにSQLを再実行するのに対し、マテリアライズドビューはあらかじめ計算・集計した結果を保持するため、参照時の処理を大幅に高速化できます。
特に以下のような場面で効果を発揮します。
- 大量レコードの集計・集約クエリ(売上合計・ランキングなど)
- 複数テーブルを結合(JOIN)する複雑なクエリ
- BI・レポーティングツールへのデータ提供
- データウェアハウスやOLAP環境での分析処理
マテリアライズドビューはデータのスナップショットを保持するため、元データが更新されると内容が古くなります。この「鮮度」を維持するための更新方式には大きく二種類あります。一つは全データを再構築する「完全リフレッシュ」、もう一つは差分のみを反映する「増分(インクリメンタル)リフレッシュ」です。更新タイミングは手動・スケジュール・自動(元テーブル更新時)などから選択します。
PostgreSQL・Oracle・SQL Serverなど主要なRDBMSで対応しており、MySQLでは標準機能として搭載されていないため、テーブルとトリガーを組み合わせた代替実装が用いられることがあります。読み取り性能と更新コストのトレードオフを考慮した設計が重要です。
使い方・例文
Eコマースサイトで「カテゴリ別の売上ランキング」を毎回集計するとデータベースに高負荷がかかります。この集計結果をマテリアライズドビューとして保存しておくことで、ページ表示を高速化できます。
この用語をシェア
最終更新: