データベースにおける「ビュー・マテリアライズドビュー・一時テーブル」の解説
データベースを活用するうえで重要な概念に「ビュー(View)」「マテリアライズドビュー(Materialized View)」「一時テーブル(Temporary Table)」があります。それぞれの特徴や用途を整理します。
1. ビュー(View)とは?
ビューは、実テーブルのクエリ結果を仮想的にテーブルとして扱える仕組みです。
-
特徴
- 実際のデータを格納しない(仮想的なテーブル)。
- 常に最新のデータを表示(実行時に毎回クエリを実行)。
-
用途
- 複雑なクエリを簡単なテーブルのように扱いたいとき。
- データのアクセス制御(特定のカラムを非表示にする等)。
-
SQL記述例
CREATE VIEW view_active_users AS
SELECT id, name, email FROM users WHERE active = true;
2. マテリアライズドビュー(Materialized View)とは?
マテリアライズドビューは、ビューの結果セットを物理的なテーブルとして保存したものです。
-
特徴
- 結果を物理的に保存するため高速にアクセス可能。
- 定期的または手動でデータを更新する必要がある。
-
用途
- 大規模なデータを繰り返し高速に検索したいとき。
- 集計処理やレポート作成など頻繁に使用されるクエリの高速化。
-
SQL記述例(PostgreSQLの場合)
CREATE MATERIALIZED VIEW daily_sales_summary AS
SELECT sale_date, SUM(amount) AS total_sales
FROM sales
GROUP BY sale_date;
-- データの更新
REFRESH MATERIALIZED VIEW daily_sales_summary;
3. 一時テーブル(Temporary Table)とは?
一時テーブルは、特定のセッションやトランザクション内だけで利用できる一時的なテーブルです。
-
特徴
- セッション終了時に自動的に削除される。
- 一時的な作業領域として使える。
-
用途
- 一時的にデータを格納し複雑な処理を分割するとき。
- 中間集計結果を保存して後続処理を簡略化するとき。
-
SQL記述例
CREATE TEMPORARY TABLE temp_active_users AS
SELECT id, name FROM users WHERE active = true;
SELECT * FROM temp_active_users;
-- セッション終了時にtemp_active_usersは削除される。
ビュー・マテリアライズドビュー・一時テーブルの比較
項目 | ビュー | マテリアライズドビュー | 一時テーブル |
---|---|---|---|
データ保存 | しない(仮想) | する(物理) | する(物理・一時的) |
更新頻度 | 常に最新 | 定期的または手動 | 必要に応じて随時 |
主な用途 | クエリの簡素化、アクセス制御 | 高速検索、レポート | 一時的処理・中間データ保存 |