見出し画像

マテリアライズドビューとは #360

出てきた単語で、よく理解できていなかったものを整理します。
今回はデータベース関連の用語であるマテリアライズドビューに関してです。


マテリアライズドビューとは

マテリアライズドビューとは、データの実体を持ったビュー(仮想テーブル)のことです。データベースにおいて、あるクエリの結果を事前に計算してテーブルとして保存しておくことで、クエリの実行時間を短縮するためのテクニックになります。

通常、データベースクエリは、実行されるたびにデータベース内のテーブルからデータを取得して計算を行います。しかし、クエリの結果が頻繁に使用され、計算コストが高い場合、クエリの実行時間が遅くなります。このような場合に、マテリアライズドビューを使用することで、クエリの結果を事前に計算して保存し、クエリの実行時には保存されたテーブルからデータを取得することで、実行時間を短縮することができます。


マテリアライズドビューと通常のテーブルの違いは?

マテリアライズドビューと通常のテーブルの違いは、データの保存方法にあります。

通常のテーブルは、データベース内に物理的なテーブルとして保存されます。これに対して、マテリアライズドビューは、ビューと同じようにクエリの結果を表す論理的なテーブルであり、物理的なテーブルではありません


通常のテーブル

  • データの更新や変更が発生した場合に物理的なテーブルを更新する必要があるが、自由にデータを追加したり削除したりできる

  • 主キーやインデックスなどの制約を設定でき、データの整合性や参照効率を制御できる

マテリアライズドビュー

  • クエリの結果を計算してテーブルとして保存しているものであるため、通常のテーブルのように直接的な操作はできない。元のテーブルが更新されたらリフレッシュ(再度クエリの結果を計算する)が必要。

  • 主キーやインデックスなどの制約は設定できない。


マテリアライズドビューと通常のビューの違いは?

上述のとおり実行時間が異なっており、マテリアライズドビューの方が速いです。

ただしこれとは別の重要な違いとして、マテリアライズドビューには「リフレッシュ」という、データの更新処理が必要になる点があります。

マテリアライズドビューは、ある元のデーブルから生成された、実体を持った仮装テーブルです。そのため、マテリアライズドビューに基づいているテーブルが更新された場合、マテリアライズドビューも更新する必要があります。

通常のビューは都度クエリを実行して計算してを行っているので、ビュー自体をリフレッシュする必要はありません。


ここまでお読みいただきありがとうございました!



参考


この記事が気に入ったらサポートをしてみませんか?