![見出し画像](https://assets.st-note.com/production/uploads/images/100052906/rectangle_large_type_2_6523b0e4dffb386098ffbe7f201f733d.png?width=1200)
マテリアライズドビューとは #360
出てきた単語で、よく理解できていなかったものを整理します。
今回はデータベース関連の用語であるマテリアライズドビューに関してです。
マテリアライズドビューとは
マテリアライズドビューとは、データの実体を持ったビュー(仮想テーブル)のことです。データベースにおいて、あるクエリの結果を事前に計算してテーブルとして保存しておくことで、クエリの実行時間を短縮するためのテクニックになります。
通常、データベースクエリは、実行されるたびにデータベース内のテーブルからデータを取得して計算を行います。しかし、クエリの結果が頻繁に使用され、計算コストが高い場合、クエリの実行時間が遅くなります。このような場合に、マテリアライズドビューを使用することで、クエリの結果を事前に計算して保存し、クエリの実行時には保存されたテーブルからデータを取得することで、実行時間を短縮することができます。
マテリアライズドビューと通常のテーブルの違いは?
マテリアライズドビューと通常のテーブルの違いは、データの保存方法にあります。
通常のテーブルは、データベース内に物理的なテーブルとして保存されます。これに対して、マテリアライズドビューは、ビューと同じようにクエリの結果を表す論理的なテーブルであり、物理的なテーブルではありません。
通常のテーブル
データの更新や変更が発生した場合に物理的なテーブルを更新する必要があるが、自由にデータを追加したり削除したりできる
主キーやインデックスなどの制約を設定でき、データの整合性や参照効率を制御できる
マテリアライズドビュー
クエリの結果を計算してテーブルとして保存しているものであるため、通常のテーブルのように直接的な操作はできない。元のテーブルが更新されたらリフレッシュ(再度クエリの結果を計算する)が必要。
主キーやインデックスなどの制約は設定できない。
マテリアライズドビューと通常のビューの違いは?
上述のとおり実行時間が異なっており、マテリアライズドビューの方が速いです。
ただしこれとは別の重要な違いとして、マテリアライズドビューには「リフレッシュ」という、データの更新処理が必要になる点があります。
マテリアライズドビューは、ある元のデーブルから生成された、実体を持った仮装テーブルです。そのため、マテリアライズドビューに基づいているテーブルが更新された場合、マテリアライズドビューも更新する必要があります。
通常のビューは都度クエリを実行して計算してを行っているので、ビュー自体をリフレッシュする必要はありません。
ここまでお読みいただきありがとうございました!
参考
この記事が気に入ったらサポートをしてみませんか?